Autoscroll现在不行了

时间:2013-09-03 07:19:27

标签: javascript jquery

我正在开发一个项目,当您单击该页面时,它会滚动页面的整个长度。但它以20px的间隔执行此操作;这是为了允许在iOS中滚动时执行javascript。

然而,在上传最终版本时,我的ftp客户端删除了一些代码,现在它无法运行。我不明白为什么。

有什么建议吗?

var t;
var scrolling = false;

// doScroll sets the position in which to auto pause.
function doScroll() {
    $('body').scrollTop($('body').scrollTop() + 20);
    if($("#pause").offset().top >=300 && $("#pause").offset().top < 304){
        ScrollIt();    
    } else 
    if($("#pause").offset().top >=4000 && $("#pause").offset().top < 4004){
        ScrollIt() ;   
    } else
    if($("#pause").offset().top >=7500 && $("#pause").offset().top < 7504){
        ScrollIt()  ;  
    }
}

// ScrollIt removes the interval for scrolling, pausing the scroll.
function ScrollIt() {
    clearInterval(t);
    scrolling = false;
        return; 
//        playPause()
}

//Stop/start on click
$('#pause').on('click',function(){
    ScrollIt();
    scrolling = !scrolling;
    if(!scrolling){ 
        clearInterval(t);
        return;
    }
    t = setInterval(doScroll, 5);
});

1 个答案:

答案 0 :(得分:1)

我为你创建了jsfiddle页面。

http://jsfiddle.net/u32Nw/2/

我可以看到它正常工作,但滚动并没有停止。

    var t;
var scrolling = false;

// doScroll sets the position in which to auto pause.

function doScroll() {
    var $body = $("body"),
        $pause = $("#pause");
    $body.scrollTop($body.scrollTop() + 20);
    var pauseTop = $pause.offset().top;
    if (pauseTop >= 300 && pauseTop < 304 || pauseTop >= 4000 && pauseTop < 4004 || pauseTop >= 7500 && pauseTop < 7504) {
        clearScrollInterval();
    }
}

// scrollIt removes the interval for scrolling, pausing the scroll.

function clearScrollInterval() {
    clearInterval(t);
    scrolling = false;
    return;
    //        playPause()
}

//Stop/start on click
$("#pause").on("click", function () {
    clearScrollInterval();
    scrolling = !scrolling;
    t = setInterval(doScroll, 5);
});

这是完全相同的代码,只是重构。

尝试从这里开始工作。您需要重构代码以进行调试。