アンカーリンクが正しいポイントへ飛ばない(Firefox)


どうしてもうまくアンカーが効かない!

これが効かないとクライアントに怒られる!

そんなときはあるものです。

まずはアンカー地点のyの座標点を計測。


$(function(){
obj = document.getElementById('anc');
y = obj.offsetTop;
alert(y);
}

alertで表示された値が1866だったとします。

次に、URLにアンカー名(ここではanc)が含まれていた場合、

x:0,y;1886の地点にスクロールする

という記述を追加します。


$(function(){
url = document.URL;
if(url.match('#anc'))
scrollTo(0,1866);
});

※scrollTo(0,1866)の値は、微調整が必要な場合もあります。

容易に察しがつくかと思いますが、非常に強引な方法です。

本当に最終手段としてお使いください。