0

我有这个脚本可以使页面一次滚动几行,以允许在 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 和 3004、400 和 4004 等之间时才会滚动...

有任何想法吗?

4

2 回答 2

0

该变量pauseTop不会被重新计算。将计算包括在doScroll.

于 2013-09-09T14:54:27.720 回答
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});
}

演示:http: //jsfiddle.net/3btFN/1/

这将根据匹配标准将窗口滚动到指定点。

于 2013-09-09T15:39:28.643 回答