Javascript 通过向顶部添加固定的滚动值,可以使用windows.Scroll
我在AngularJS指令中使用了这个函数。这个函数会滚动到页面顶部,但这不是我的目标:我想让它只向上滚动400px或30%Javascript 通过向顶部添加固定的滚动值,可以使用windows.Scroll,javascript,angularjs,angularjs-directive,scroll,Javascript,Angularjs,Angularjs Directive,Scroll,我在AngularJS指令中使用了这个函数。这个函数会滚动到页面顶部,但这不是我的目标:我想让它只向上滚动400px或30% function scrollToTop() { var scrollDuration = 500; var scrollStep = -window.scrollY / (scrollDuration / 15); console.log(scrollStep); var scrollInterval = setInterval(fun
function scrollToTop() {
var scrollDuration = 500;
var scrollStep = -window.scrollY / (scrollDuration / 15);
console.log(scrollStep);
var scrollInterval = setInterval(function () {
if (window.scrollY != 0) {
window.scrollBy(0, scrollStep);
} else {
clearInterval(scrollInterval);
}
}, 15);
}
我尝试将
scrollStep
变量更改为300或任何其他数字,但实际上我无法理解。总distanceToScroll
是任意数量的像素(即400),如果小于400,则是整个窗口滚动距离。为此,您可以使用Math.min
<代码>滚动步骤根据距离到滚动
计算。您需要在setInterval
中记录“到目前为止我滚动了多少次”,我们称之为distanceScrolled
。继续滚动,直到覆盖了distance-to-croll
函数scrollToTop(){
var=500;
var stepDuration=15;
var distancetoscoll=Math.min(400,窗口滚动);
var scrollStep=距离滚动/(滚动持续时间/步长持续时间);
console.log(scrollStep);
var distanceScrolled=0;
var scrollInterval=setInterval(函数(){
如果(距离滚动<距离滚动){
scrollBy(0,-1*scrollStep);
距离滚动+=滚动步长
}否则{
清除间隔(滚动间隔);
}
}步进时间);
}
document.getElementById('btn')。addEventListener('click',scrollToTop)代码>
#非常高{
高度:3000px;
}
#btn{
位置:固定;
右:10px;
顶部:10px;
}
滚动
“我想让它只滚动400px或30%”你能详细解释一下吗?@FreemanLambda-Hey。当我从页面底部的按钮启动此功能时,现在发生了什么。屏幕滚动到页面顶部,但我希望它只滚动400像素或任何其他数字不到顶部。哦,老兄,真的非常感谢你。你向我解释了我应该如何思考,并为我解决了这个问题。真的谢谢你,我真的很感激。