3

次のjqueryコードを使用して、ページの特定の位置まで垂直方向にスクロールしています。これはすべてのブラウザで完全に機能し、水平方向のスクロール位置には影響しませんが、iPhone(モバイルサファリ)で試してみると、正しい場所に垂直方向にスクロールするだけでなく、水平方向に左端までスクロールします。同様に、scrollleftを使用すると、水平方向に正しい場所に移動しますが、ページの上部に戻ります。それは他のすべてでうまく機能し、私はどこにもこの問題への言及を見つけることができません、私が困惑しているのでこれに遭遇した誰かが私を助けることができれば私は非常に感謝します!私は次々に(スクロール左、次にスクロール右)行うことさえできません。最後に行った方が、前のスクロール位置で設定されたスクロール位置をキャンセルするからです。

if($.browser.opera)
{
    $('html').animate(
    {
        scrollTop: yscroll - 10
    }, 
    1000);
}
else
{
    $('html, body').animate(
    {
        scrollTop: yscroll - 10
    }, 
    1000);
}

どうもありがとうございました!

デイブ

4

1 に答える 1

0

おそらく、最初に現在のscrollLeft(またはscrollLeftをアニメートする場合はscrollTop)の値を取得してから、ユーザーエージェントがiPhoneだと言ったときにscrollLeftとscrollTopの両方をアニメートすることができます

var isiPhone = navigator.userAgent.toLowerCase().indexOf("iphone");
var isiPad = navigator.userAgent.toLowerCase().indexOf("ipad");
var isiPod = navigator.userAgent.toLowerCase().indexOf("ipod");

アニメーションが異なるため最適ではありませんが、少なくとも同じ位置で終了します。

iphone/pad iPad/jQuery.animate(scroll)の問題に問題があります

于 2012-07-29T16:26:23.957 に答える