1

jQueryoffset().topを使用してドキュメント ウィンドウの上部からハイパーリンクのピクセルを計算しているため、ホバーするとその上にツールヒントが表示されます。

デフォルトでは、ツールチップの css の絶対位置は上 0、左 0 です。リンクがホバーされると、ドキュメントの上からの位置が計算され、それがツールチップの CSS 上位置として使用されます。

問題は、オフセットがリンクの位置を完全に計算しているページもあれば、約 50 ピクセル多すぎるページもあります。理由がわかりません。

$(".tiptrigger").mouseenter(function() { 
    var s_id = $(this).attr('id');
    var calc = $(this).offset().top; 
    $("#tip-"+s_id).css({"margin-top": calc+"px"});
});
4

2 に答える 2

0

.offset()この制限があります:

注: jQuery は、非表示の要素のオフセット座標の取得、または body 要素に設定された境界線、マージン、またはパディングの説明をサポートしていません。

したがって、jQuery はおそらく正しいですが、体にパディング/マージンがある場合、オフセットが正しくありません。それを削除するか、計算に含めます。

var bodyOffset = $('body').css("margin-top") + $('body').css('padding-top') + $('body').css('border-top');
var calc = $(this).offset().top + bodyOffset; 
于 2013-11-06T12:37:29.833 に答える