Javascript 带有setInterval/clearInterval的自动滚动
我对JS编码比较陌生,不能让这个小数字发挥作用。谁能告诉我我做错了什么 我的JavaScript是:Javascript 带有setInterval/clearInterval的自动滚动,javascript,setinterval,autoscroll,clearinterval,Javascript,Setinterval,Autoscroll,Clearinterval,我对JS编码比较陌生,不能让这个小数字发挥作用。谁能告诉我我做错了什么 我的JavaScript是: incrementScroll = function() { window.scrollBy(0, 3) ; } startScrollLoop = function() { scrollLoopId = setInterval( "incrementScroll", 5) ; } stopScrollLoop = f
incrementScroll = function() {
window.scrollBy(0, 3) ;
}
startScrollLoop = function() {
scrollLoopId = setInterval( "incrementScroll", 5) ;
}
stopScrollLoop = function() {
clearInterval( scrollLoopId ) ;
}
我的HTML是:
<button onclick="startScrollLoop()">AUTO SCROLL</button>
<button onclick="stopScrollLoop ()">STOP SCROLL</button>
自动滚动
停止滚动
再次感谢你的帮助。对所有这些都不熟悉,需要在早上之前完成一个项目。
干杯。setInterval()的第一个参数应该是一个函数引用,或者非理想情况下是一个要eval()的字符串,这将是一个带有
()
的完整函数调用。因此,请删除引号:
// Pass the reference to incrementScroll,
// not a quoted string containing its name.
scrollLoopId = setInterval(incrementScroll, 5);
要清除滚动,需要使用var
在更高的范围内定义scrollLoopId
// Define outside the function so it is available
// in scope of the stopScrollLoop() function when needed...
var scrollLoopId;
var startScrollLoop = function() {
scrollLoopId = setInterval( incrementScroll, 5) ;
}
(使用较慢的滚动速度给你一个机会点击文本中间的停止按钮)
请注意,最好将var
关键字用于其中的每一项。即使它们最终会出现在窗口
范围内(假设它们不是在另一个函数中定义的)
这可能无法解决您的问题,但您不应设置使用小于一帧周期(浏览器fps)的间隔时间,即约16毫秒(如果以正常速度运行):
setInterval(incrementScroll,20)代码>尤里卡!效果很好。非常感谢。互联网真的可以帮你做作业!该网站(仍在开发中)位于:johnnyvenom.org。
// Define with var
var incrementScroll = function() {
window.scrollBy(0, 3);
}