【问题标题】:smoothest way to change jquery.animate mid-animation更改 jquery.animate 中间动画的最流畅方法
【发布时间】:2011-07-07 16:12:44
【问题描述】:

我正在使用 jQuery.animate 为屏幕上的元素设置动画,以响应窗口滚动事件,如下所示:

$(window).scroll(function(){
  $("#myElement").stop().animate({top: -0.5 * $(window).scrollTop()});
});

由于滚动窗口会在您滚动窗口时反复触发,因此我必须在我的元素上调用 .stop() 函数才能立即开始我的下一个动画。

这似乎可以正常工作,但当有很多动画内容时可能会有点慢。有没有更好的方法来更新动画中间动画的目标值?我可以做些什么来提高这段代码的性能?

【问题讨论】:

    标签: javascript jquery scroll jquery-animate


    【解决方案1】:

    你有没有想过只做一个更具体的.css 更改?

    $(window).scroll(function(){
      $("#myElement").css({top: -0.02 * $(window).scrollTop()});
    });
    

    我只是输入了一个任意数字,但它可能值得尝试和使用。如果你找出正确的修饰符,它应该会更流畅。

    另外:如果您能接受更多答案,那就太好了。你只接受了你提出的问题的 31%。只是一个想法。

    【讨论】:

    • 我实际上正在使用 .animate 以便我可以进行缓动。如果我使用 .css,则没有过渡。
    • 你的意思是它可以平滑滑动?你可以用css做到这一点。我在我的网站上做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    相关资源
    最近更新 更多