jquery - CSS 转换不适用于 jQuery 类替换

标签 jquery css animation

我有一个简单的 jQuery 脚本,当页面向下滚动 100 px 时,它会更改 ul 上的类,将菜单从居中移动到 float: right,使用 CSS 过渡实现平滑移动。这可能吗?

我的脚本:

 $(document).on("scroll",function(){
if($(document).scrollTop()>100){
    $("#nav").removeClass("stick-menu-top").addClass("stick-menu");
} else{
    $("#nav").removeClass("stick-menu").addClass("stick-menu-top");
}
});

我的两门课:

ul.stick-menu-top { float:none; margin:0 auto; width:614px; padding:17px 0 0; }
ul.stick-menu { float:right; width:614px; padding:17px 0 0; }

我的 CSS 动画:

    #nav.stick-menu-top, #nav.stick-menu-top a, #nav.stick-menu-top ul, #nav.stick-menu-top li{ transition: all 1s; -moz-transition: all 1s; -webkit-transition: all 1s; -o-transition: all 1s; }

我非常感谢任何对此的帮助。您可以在这里查看网站:http://www.thoriumdocumentary.com/redesign/

最佳答案

可转换的属性列表,可在 W3C site 中找到。 ,并且 float 不是其中之一:)

我认为处理这种情况的最佳方法是删除 float ,并通过更改 margin-rightleft 来定位菜单项(这与在 jQuery 的帮助下,使用 position:relative 来表示菜单容器及其父容器。

例如:

$(document).ready(function(){

    // before the scroll
    $('#menuContainer').css('margin-right',($(window).width() - $('#menuContainer').width())/2 + 'px');

    // after scroll
    $('#menuContainer').css('margin-right',($(window).width() - $('#menuContainer').width()) + 'px');
})

关于jquery - CSS 转换不适用于 jQuery 类替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18543508/

相关文章:

html - 容器扩展上的 CSS 强制换行

移除上面的元素后,CSS3 将元素设置为动画或过渡

animationControllerForPresentedController 和 animateTransition 之间的 iOS 未知延迟

jquery - 使用 jQuery addClass 或自定义 LoadCSS 函数将 css 应用于单个文本框

javascript - 使用 json 文件中的项目数量重复克隆操作

jquery - BX slider 和 Jquery

html - 使css动画流畅地永远循环

jquery - Gif 在移动设备中无限循环,即使设置为循环一次

javascript - 调整剑道下拉菜单的大小

javascript - RegEx 删除背景颜色和颜色属性,但将所有样式保留在 php 中