2012-07-09 82 views
0

所以我在狩猎,试图找出优化Jquery的.animate(scrollTo:值)的最佳途径功能。拿这个例子:优化jQuery的动画

$('#returnToTop').on('click', function(){ 
     $('html, body').animate({ 
      scrollTop: 0 
     }, 'slow'); 
    }); 

在这里你有一个div作为一个“顶部”按钮,当点击时,将页面滚动回顶部。现在在复杂的页面上,这是相当生涩,不光滑。我想知道是否有任何jQuery忍者可以启发我们,究竟是什么动画功能。在简单的页面上,它很好,很流畅。

现在,我认为它可能做一些计算方法,走下DOM,所以当它的复杂,它需要一段时间,看起来神经兮兮的。因此,这里的问题的心脏:

在那里我们可以采取任何措施,为开发商提供的jQuery与精确的参数,将使它的计算更简单,因此使得动画更加平滑。如果提供的话,可能有一些重要的特定值会提供显着的加速。

有没有人有任何见解?

谢谢。

回答

4

jQuery的,“慢”是的时间量(600毫秒要准确)。如果它是一个大页面,它需要跳跃到600毫秒的顶部。

如果你想使这部动画以恒速独立页面的高度,持续时间设置为t = offsetTop/k走每秒,其中的offsetTop是一样的东西$(clickedElement).offset().top aproximatelly k个像素。

jQuery的也有一些插件来做到这一点在一条笔直的路。

+0

+1 ....很不错的想法 – Jashwant 2012-07-09 21:41:25

+0

这实际上是更平滑的,但由于我的网页的复杂性,它似乎还是有点生涩。我希望有人能启发我们一些动画函数的内部工作,试图找出导致渲染速度放慢的原因。如果我们没有收到任何回应,我会将其标记为正确。 – gabaum10 2012-07-10 17:06:03

+0

您可以尝试一些javascript/css分析(例如使用Chrome开发人员工具)来查看是什么影响了您的代码。 – iurisilvio 2012-07-10 20:46:05