1

我正在做一个项目,当您单击页面时,它会滚动页面的整个长度。但它以 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);
});
4

1 回答 1

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);
});

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

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

于 2013-09-03T07:37:09.940 回答