0

所以我想让一个页面在鼠标移动到浏览器窗口边缘附近 100 像素时左右水平滚动。我编写了以下脚本,但是当鼠标移动到该页面的中间时它拒绝清除间隔。

编辑:很抱歉没有在这里粘贴整个 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;
        }
    }

需要帮助解决这个问题:/

4

1 回答 1

0

您需要使用 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);
}
于 2012-01-05T20:02:30.777 回答