我有这个脚本让页面一次滚动几行,以允许在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等...
任何想法?
答案 0 :(得分:0)
变量pauseTop
不会重新计算。在doScroll
中包含计算。
答案 1 :(得分:0)
好的,那怎么样:
$('#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/
这将根据匹配条件将窗口滚动到指定点。