我对JS编码相对较新,并且不能让这个小数字起作用。谁能告诉我我做错了什么?
我的JavaScript是:
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>
再次,非常感谢您的帮助。所有这一切都是新手,需要在早上之前完成一个项目。 欢呼声。
答案 0 :(得分:1)
setInterval()
的第一个参数应该是函数引用,或者非理想情况下,应该是eval()'d的字符串,这将是一个带()
的完整函数调用。所以删除引号:
// Pass the reference to incrementScroll,
// not a quoted string containing its name.
scrollLoopId = setInterval(incrementScroll, 5);
要清除滚动条,您需要使用scrollLoopId
在更高的范围内定义var
。
// 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
关键字与其中的每一个一起使用。即使它们最终会在window
范围内结束(假设它们没有在另一个函数中定义)。
// Define with var
var incrementScroll = function() {
window.scrollBy(0, 3);
}