Анимированная прокрутка окна - PullRequest
4 голосов
/ 09 февраля 2011

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

window.scrollBy(0, delta)

Текущая реализация scrollBy просто переводит документ на новую позицию.Есть ли способ оживить это?Я специально использую webkit, и jQuery (или любой другой фреймворк javascript) не вариант.

Спасибо за любую помощь заранее.

Ответы [ 2 ]

13 голосов
/ 09 февраля 2011

Вы можете просто оживить его, вызвав интервал:

setInterval(function() {
    window.scrollBy(0, 5);
}, 13);

Это, конечно, будет делать это снова и снова, поэтому вам нужно поставить условную проверку, когда отменять интервал. Может выглядеть так:

var timerID = setInterval(function() {
    window.scrollBy(0, 5);

    if( window.pageYOffset >= 500 )
        clearInterval(timerID);
}, 13);
0 голосов
/ 28 февраля 2013

Каждый раз, когда вызывается эта функция, она будет перескакивать количество пикселей в window.scrollBy (0,5), независимо от того, где находится pageYOffset.Например, если pageYOffset равен 300px, он перейдет к 305px.

, но эту проблему можно решить, переместив if и добавив else
следующим образом:

var timerID = setInterval(function() {
    if( window.pageYOffset <= 500 )
        window.scrollBy(0, 5);

    else
        clearInterval(timerID);
}, 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...