自动滚动不停止

时间:2013-09-09 14:52:41

标签: javascript jquery

我有这个脚本让页面一次滚动几行,以允许在iOS中滚动时执行javascript。但是当它到达页面中的某个点时我希望它停止。我无法弄清楚为什么这不起作用......

window.onload=function(){
document.getElementById( 'pause').addEventListener( "click" , function(){
    if( window.scrollTimerId ){
        window.clearInterval(window.scrollTimerId );
        window.scrollTimerId = null
    }
    else{
    doScroll();
     window.scrollTimerId= window.setInterval( doScroll , 5);
    }

});


 var pauseTop = $pause.offset().top;

 function doScroll(){
         if (pauseTop >= 300 && pauseTop < 3004 || pauseTop >= 4000 && pauseTop < 4004 || pauseTop >= 7500 && pauseTop < 7504) {
         }else{
     window.scrollBy(0,15);
     }
}
}//]]>     

正如您所看到的,只有在视口位于3000&amp;之间时才会滚动。 3004,400&amp; 4004等...

任何想法?

2 个答案:

答案 0 :(得分:0)

变量pauseTop不会重新计算。在doScroll中包含计算。

答案 1 :(得分:0)

好的,那怎么样:

JQuery的

$('#pause').click(function () {
    var y = $(window).scrollTop();

    if (y < 300) {
        scrollify(300);
    }
    else if (y < 3004) {
        scrollify(3004);
    }
    // etc...
});

function scrollify(y) {
    $('body, html').animate({scrollTop: y});
}

DEMO: http://jsfiddle.net/3btFN/1/

这将根据匹配条件将窗口滚动到指定点。