javascript clearInterval проблема - PullRequest
0 голосов
/ 05 января 2012

, поэтому я хочу сделать страницу для горизонтальной прокрутки влево и вправо, когда мышь перемещается на 100 пикселей ближе к краям окна браузера. я написал следующий скрипт, но он отказывается очищать интервал, когда мышь перемещается в середину этой страницы.

edit: извините за то, что не вставил сюда все js, startScrollLeft и ..Right уже определены как глобальная переменная. я сделал фиктивную страницу здесь . Вы можете проверить страницу и как мой код (не) работает.

$(document).mousemove(function(e){

        var cursorX = e.pageX;

        if (cursorX > windowW - 100){
            startScrollLeft = setInterval(scrollLeft, 50);
        }else {
            clearInterval(startScrollLeft);
        }

        if (cursorX < 100){
            startScrollRight = setInterval(scrollRight, 50);
        }else{
            clearInterval(startScrollRight);
        }

    });
    var scrolledAmount = 20;
    function scrollLeft(){
        if($('.content').width() > scrolledAmount + contentW +  windowW - 400){
            $('.content').animate({
                left: '-='+20+'px'
            },70, 'linear');
            scrolledAmount = scrolledAmount+20;
        }
    }
    function scrollRight(){
        if(scrolledAmount > 20){
            $('.content').animate({
                left: '+='+20+'px'
            },70,'linear');
            scrolledAmount = scrolledAmount-20;
        }
    }

нужна рука с этим вопросом: /

1 Ответ

0 голосов
/ 06 января 2012

Вам нужно использовать set startScrollLeft и startScrollRight в качестве глобальных переменных

var cursorX = e.pageX;

if (cursorX > windowW - 100){
    window.startScrollLeft = setInterval(scrollLeft, 50);
}else {
    clearInterval(window.startScrollLeft);  
}

if (cursorX < 100){
    window.startScrollRight = setInterval(scrollRight, 50);
}else{
    clearInterval(window.startScrollRight);
}
...