Я работаю над мобильным приложением jquery и столкнулся с небольшой проблемой; Я хотел бы использовать jquery's animate () для плавной прокрутки «вверх» страниц моего приложения.
Следующий фрагмент кода прекрасно работает во всех браузерах, кроме одного. Chrome и Firefox на рабочем столе, Safari на iPhone и Firefox Beta на Android - это хорошо. После завершения анимации браузер Android по умолчанию (webkit-mobile IIRC) прокручивает обратно на якорь.
$("a[href='#top']").live('click', function() {
$("body").animate({ scrollTop: 0 }, "slow", function() {
// anim complete
setTimeout(function() { // not needed, attempt to brute-force
window.scrollTo(0,0);
alert('foo'); // <- Android scrolls back to anchor after showing alert
}, 50);
});
});
Может кто-нибудь предложить а) что заставляет браузер Android прокручивать назад и / или б) предложить обходной путь? Если это имеет значение, устройство, на котором я сейчас тестирую, работает под управлением Android 2.3.2.