Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有setInterval/clearInterval的自动滚动_Javascript_Setinterval_Autoscroll_Clearinterval - Fatal编程技术网

Javascript 带有setInterval/clearInterval的自动滚动

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

我对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>
自动滚动
停止滚动
再次感谢你的帮助。对所有这些都不熟悉,需要在早上之前完成一个项目。
干杯。

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);
}