jQuery 根据距离改变速度
jQuery change speed depending on distance
我试图在滚动回浏览器顶部时保持相对恒定的速度 window 这取决于您离页面顶部有多远。
因此,如果您将页面向下滚动 500 像素或 5000 像素,我想创建一个函数来计算以恒定速度动画回到顶部需要多长时间。
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');
};
您可以使用 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);
}
body {
height: 5000px;
}
<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>
我试图在滚动回浏览器顶部时保持相对恒定的速度 window 这取决于您离页面顶部有多远。
因此,如果您将页面向下滚动 500 像素或 5000 像素,我想创建一个函数来计算以恒定速度动画回到顶部需要多长时间。
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');
};
您可以使用 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);
}
body {
height: 5000px;
}
<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>