jqmを組み込んでるページで、読み込み完了時にページ上部に戻される。
スクロール途中で勝手に戻されると・・・ねぇ。
イラっとっしたので止めることにw
使わなきゃイーじゃんという声は全力でスルー
と言いつつ、jqmである必要は果てしなく薄いのでそのうち撤去するけど…
さらっとググった感じだとヒットしなかったので、
やむをえずソースを読む。
で、この辺だろうとあたりをつける。
jqmの1.3.1で147行くらい(非圧縮版ね)
// Scroll page vertically: scroll to 0 to hide iOS address bar, or pass a Y value
silentScroll: function(ypos) {
if ($.type(ypos) !== "number") {
ypos = $.mobile.defaultHomeScroll;
}
// prevent scrollstart and scrollstop events
$.event.special.scrollstart.enabled = false;
setTimeout(function() {
window.scrollTo(0, ypos);
$.mobile.document.trigger("silentscroll", {x: 0,y: ypos});
}, 20);
setTimeout(function() {
$.event.special.scrollstart.enabled = true;
}, 150);
},
うむ、iosアドレスバー云々って書いてるからこれだな。
さて、どう書くかな?と思ってたら英文であっさり見つかりました(;´∀`)
<script>
$(function(){
window.scrollRef = window.scrollTo;
window.scrollTo = function(){return false;};
});
</script>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
<script>
$(function(){
window.scrollTo = window.scrollRef;
});
</script>
とか。jqueryの$(function)無くてもいいだろーって書いたら効かなかったので、
function内に入れてみた。
mobileinitとかに用意されてればありがたいのに(←文句言うだけw
環境とか他のスクリプトにも依ると思うけど、まずはお気軽に試せるからいかもねー
[amazonjs asin=”4873115264″ locale=”JP” tmpl=”Small” title=”jQuery Mobile”]
[amazonjs asin=”4873114683″ locale=”JP” tmpl=”Small” title=”jQueryクックブック”]