クロスブラウザーとクロスプラットフォームの webapp があります。iPhone では、$(document).scrollTop(0); を使用してアドレス バーを非表示にすることができました。
以下は、私がやりたいことを実行するコードスニペットです。
$(window).ready(function(){
$(window).scroll(function(){ /*detect scroll event*/
setTimeout("ScrollWindowToTop();",0);
});
});
function ScrollWindowToTop(){
bodyelem=$("html,body"); /*i have tried this out with document,window, html, body*/
$(bodyelem).scrollTop(50);
}
次のシナリオで動作する必要があります: 1. ユーザーがページを物理的にスクロールするとき 2. ページが現在別のスクロール位置にあるとき、ステータス バーをタップしてアドレス バーを表示すると、上記の関数が呼び出されます。アドレスバーを非表示にします。
上記のシナリオは、iPhone 4S に完全に実装されています。ただし、2 番目のシナリオは iPhone 5 では惨めに失敗します。
ここで何ができるかの手がかりを持っている人はいますか?
編集:コードをいじってみました。関数 ScrollWindowToTop() で、次のように編集しました
function ScrollWindowToTop(){
document.body.scrollTop=50;
}
ただし、コンソールに document.body.scrollTop の値を出力すると、値が 0 として表示されます。iPhone5 の Safari がこの属性の値を変更しない理由は何ですか?