abecchiのブックの最新の日記
IEの場合だけoffset.topが絶対座標を返さない(jQuery)
マウスオーバーでメニューバーの「上に」メニューを表示する機能を実装していたら、IEの場合だけoffset.topの値がおかしい事に気づいた。
日々の小ネタ:IEにおける座標の取得
またもや先人達の貴重なページのおかげで、IEの場合だけoffset.topの値がスクロール量を差し引いた「表示画面内の位置」、IE以外はスクロールを考えない「ドキュメント全体内の位置」を示している事に気づいた。jQueryでもいまだに解消されていないブラウザ間の差異だ。
仕方なくブラウザで場合分けしたコードを書いた。
var v_parent_menu_top = $(’#parent_menu’).offset().top;
if ($.support['cssFloat']) {
var v_new_top = v_parent_menu_top – v_menu_box_height;
} else {
var v_new_top = v_parent_menu_top – v_menu_box_height + $(’html:first’).scrollTop();
}
いつまでたってもシステム屋の苦労が絶えないわけである。
コメント
コメントできません (ログインするとコメントできます)
コメントはまだありません