Есть ли альтернативы jQuery scrollTop?

Существуют ли альтернативы, которые можно использовать в функции для прокрутки браузера до верхней части страницы? Прямо сейчас я использую:$('html, body').animate({scrollTop: '0px'}, 300);.

Is there maybe something else, or something that is not jQuery?

Ответы на вопрос(2)

working demo http://jsfiddle.net/jqj9T/5/ or http://jsfiddle.net/jqj9T/5/show/

Это то, что вы ищете, также проверено в IE - 8, эта версия работает.

http://api.jquery.com/animate/

http://api.jquery.com/scrollTop/

Надеюсь это поможет,

Please Note Я начал с 150, чтобы продемонстрировать / показать, как это работает, вы можете изменить его на 0 в вашем случае.

другая версия, использующая медленно:http://jsfiddle.net/jqj9T/7/

Jquery code

if( $('html,body').scrollTop() != 150 ){
    $('html,body').animate({scrollTop: $(window).scrollTop() + 150}, 300);
}
 19 мая 2012 г., 05:28
Привет @iight okeis теперь беспокоится, пожалуйста, посмотрите здесь это может помочь:stackoverflow.com/questions/10519286/… ? дайте мне знать, как это происходит - я рад помочь вам, чирлис!
 d-_-b19 мая 2012 г., 05:25
Спасибо! но извините, я, должно быть, не объяснил свой вопрос четко, я только что отредактировал его. Я ищу альтернативы для прокрутки страницы, кромеscrollTop
Решение Вопроса

льзует setInterval в качестве асинхронного цикла while, который периодически уменьшает значение pageYOffset, которое представляет позицию полосы прокрутки относительно верхней части страницы.

Для пояснения, цикл while блокировал бы запуск других скриптов на странице и заставлял бы прокручиваться до самого верха мгновенно, независимо от значения шага. Принимая во внимание, что setInterval с итерацией 50 мс будет блокировать страницу только один раз каждые 50 мс и обновлять пользовательский интерфейс полосы прокрутки после каждой отдельной итерации.

Функция принимает один параметр «шаг», который определяет скорость, с которой полоса прокрутки перемещается в верхнюю часть экрана. Чем меньше шаг, тем медленнее скорость перемещения полосы прокрутки к вершине.

function scrollTop(step) {
    var start = window.pageYOffset;
    var count = 0;
    var intervalRef = setInterval( (function(interval, curOffset) {
        return function() {
            curOffset -= (interval * step);
            console.info("offset = " + curOffset);
            window.scrollTo(0, curOffset);
            console.info("pageYoffset = " + window.pageYOffset);
            count++;
            if(count > 150 || curOffset < 0) clearInterval(intervalRef);
        }
    })(step, start--), 50);
}

// scroll to the top from the middle of the page in about 5 seconds.
scrollTop(5);

// scroll to the top in about 1 second
scrollTop(15);

// scrolls to the top very fast!
scrollTop(35);

Интервал останавливается, когда смещение достигает 0, что означает, что полоса прокрутки достигла верхней части страницы.

Тем не менее, средство проверки количества позволяет ограничить действие только 150 итерациями, чтобы вы не могли заблокировать браузер на случай, если вы решите его изменить. В противном случае вы можете удалить это условие.

Ваш ответ на вопрос