当我滚动回浏览器窗口的顶部时,我会尝试保持相对恒定的速度,具体取决于您离页面顶部的距离。
所以,如果你向下滚动页面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');
};
答案 0 :(得分:4)
您可以使用distance * <millisecond per unit distance>
,
如果您想分别在1000毫秒和3000毫秒内覆盖500和1500的距离,那么公式将是
var speed = distance * 2
例如:
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;