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クックブック”]