リンク先ページの指定位置へ自動スクロール(jQuery)

mpcbridge絡みなのですが、表題の件、いろいろと調べていました。

総合すると、urlからアンカー部分(idでもOK)を取り出して、

$(‘アンカー’).offset().top;

で、座標を取得し、

$(‘html,body’).animate({scrollTop:座標});

でスクロールさせれば良いことはわかりました。

スクロールは、ページ読み込みがすべて完了してからなので、

$(document).ready()

としてで実行していたのですが、OS XのSafariやChromeでは、指定位置へ自動スクロールが動いたり動かなかったりという状況でした。
そして、Nexus 7(初代)、Kindle Fire HD(初代)では、ほぼ100%ダメでした。
htmlがすべて読み込まれ、DOMも解析された状態で実行されていると思うのですが…

結論(というほどの確証はないですが)からすると、

$(document).ready(function(){})

ではなく、

$(function(){setTimeout(function(){},遅延時間);});

で処理させるとうまくいってるようです。

カテゴリー: Webコンテンツ パーマリンク