jQuery根据距离改变速度

时间:2016-04-14 06:14:04

标签: jquery math distance

当我滚动回浏览器窗口的顶部时,我会尝试保持相对恒定的速度,具体取决于您离页面顶部的距离。

所以,如果你向下滚动页面500px或5000px我想创建一个函数来计算动画回到顶部保持恒定速度所需的时间。

var scrollTo = function() {
   var top = $(window).scrollTop();
   var dist = $('.article').offset().top;
   var speed =  // not sure what goes here depending on distance

   $('html, body').animate( {scrollTop: dist}, speed, 'linear');
};

1 个答案:

答案 0 :(得分:4)

您可以使用distance * <millisecond per unit distance>

之类的内容

如果您想分别在1000毫秒和3000毫秒内覆盖500和1500的距离,那么公式将是

var speed = distance * 2

例如:

&#13;
&#13;
var scrollTo = function() {

  var dist = jQuery(window).scrollTop();
  var speed = dist * 2;

  $('html, body').animate({
    scrollTop: 0
  }, speed);
}
&#13;
body {
  height: 5000px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a style="position:fixed; top: 10px" onclick="scrollTo()">top</a>
&#13;
&#13;
&#13;