javascript - 填充动画延迟

标签 javascript jquery css animation jquery-animate

我正在尝试创建固定顶部菜单,并在窗口向下滚动 > 300px 时调整它们的大小(通过更改顶部和底部的填充)。 如果我在距离顶部 300px 之后尝试,设置 css 样式,如 $('nav').css('padding', '30px 0 30px 0'); 一切正常,但如果我尝试用动画做这个,我在事件之间得到巨大的延迟。

有例子: 没有动画 - http://jsfiddle.net/g3xLgLeb/1/ (一切正常)

动画 - http://jsfiddle.net/g3xLgLeb/ (巨大的延迟)

最佳答案

为此,我更愿意使用 CSS 过渡而不是 jQuery 动画。

这是您可以做到的。

将以下 css 添加到您现有的 css 文件中:

.nav.custom{
  padding-top:5px;
  padding-bottom: 5px;
  -webkit-transition: all ease 0.5s;
  -moz-transition: all ease 0.5s;
  -ms-transition: all ease 0.5s;
  transition: all ease 0.5s;
}

使用以下作为您的脚本:

   $(document).ready(function() {
        var $nav = $('.nav');
        $(window).scroll(function () {
            if ($(this).scrollTop() > 350) {
                $nav.addClass('custom');
            } else {
                $nav.removeClass('custom');
            }
        });
    });

注意:CSS 转换可能无法在某些较旧的浏览器中使用。这是显示 cross browser compatibility 的列表.

希望这对您有所帮助。 :)

关于javascript - 填充动画延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25663762/

相关文章:

javascript - jquery验证器错误位置

javascript - 从元素内部单击时从父元素中删除类

javascript - 为什么方法push()带下划线?

javascript - for var index in 与 forEach

javascript - 如何更改 Javascript 对象的类型?

javascript - 如何识别jquery中保存的浏览器用户名和密码

javascript - $(window).unload 在离开网页之前等待 AJAX 调用完成

javascript - html - 如何在 Firefox、Opera、Safari 下增加单选按钮的大小

范围输入的 JavaScript 位置问题

html - 单独时,CSS 不显示类名