2013-09-03 4 views
1

Я работал над проектом, который при нажатии на страницу прокручивает всю длину страницы. Но он делает это с интервалом 20 пикселей; это чтобы javascript выполнялся во время прокрутки в iOS.Autoscroll был, но теперь не работает

Однако при загрузке окончательной версии мой 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); 
}); 
+0

Вы получаете какие-либо ошибки в консоли при выполнении этого скрипта. Пожалуйста, также включите их в ваш вопрос –

+0

нет, ничего .... – user1949366

+0

также просим вставить весь ваш скрипт здесь. я не могу найти строку, где doScroll вызывается –

ответ

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

Это точно такой же код, просто реорганизованный.

Попробуйте отсюда. Вам нужно реорганизовать свой код для отладки.

+0

спасибо, я все еще потерян на этом. – user1949366

+0

Это своего рода работа. – Joon

+0

нажмите на ссылку на скрипку и протестируйте ее самостоятельно. – Joon

Смежные вопросы