2015-10-14 3 views
0

Я сделал простую прокрутку onmouseDown с ScrollBy. Теперь я не могу остановить его, пока не закончится. Я бы хотел, чтобы он остановил прокрутку OnMouseUp. Я пробовал что-то, но это не сработало. вот тебе код:stop scrolling on 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() функции. Прямо сейчас вы вызываете clearInterval по функции skrull, которая ничего не возвращает.

попробовать что-то вроде этого:

<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

Отлично! это сработало. спасибо за объяснение и ясное решение. –