2015-10-14 130 views
0

我用ScrollBy做了一个简单的onmouseDown滚动。现在我无法阻止它直到结束。 我希望它停止滚动OnMouseUp。我尝试了一些东西,但没有奏效。 这里是你的代码:在mouseup上停止滚动

<button onmousedown="skrull();" onmouseup="stop();" style="position:fixed;">Click to scroll <3</button> 

<p>Some text and line breaks to enable scrolling!</p> 

<script> 
function scrollWin() { 
    window.scrollBy(0, 100); 
} 
skrull = function skree() {setInterval(scrollWin, 100);} 
function stop() { 
    clearInterval(skrull); 
} 
</script> 

谢谢

回答

0

你的间隔需要被存储在一个范围内,使得它到你的stop()功能访问。现在你在功能skrull上调用clearInterval,它不返回任何内容。

尝试这样:

<button onmousedown="skrull();" onmouseup="stop();" style="position:fixed;">Click to scroll <3</button> 

<p>Some text and line breaks to enable scrolling!</p> 

<script> 
var skrullInterval; 
function scrollWin() { 
    window.scrollBy(0, 100); 
} 
skrull = function skree() {skrullInterval = setInterval(scrollWin, 100);} 
function stop() { 
    clearInterval(skrullInterval); 
} 
</script> 
+0

太好了!有效。感谢您的解释和明确的解决方案。 –