私はjquery-mobileアプリに取り組んでおり、少し問題が発生しました。アプリのページの「トップに戻る」穏やかなスクロールに jquery の animate() を使用したいと思います。
次のコード スニペットは、私のテスト ブラウザーの 1 つを除くすべてでうまく機能します。デスクトップの Chrome と Firefox、iPhone の Safari、Android の Firefox Beta はすべて優れています。デフォルトの 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);
});
});
誰でも、a) Android ブラウザがスクロールバックする原因、および/または b) 回避策を提案できますか? それが違いを生む場合、私が現在テストしているデバイスは Android 2.3.2 を実行しています。