我正在使用jQuery offset().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"});
});
答案 0 :(得分:0)
.offset()
有limitation:
注意:jQuery不支持获取隐藏元素的偏移坐标或者考虑在body元素上设置边框,边距或填充。
所以你的jQuery可能是正确的,但如果你的身体有一些填充/边距,你会遇到不正确的偏移。删除它或将其包含在您的计算中:
var bodyOffset = $('body').css("margin-top") + $('body').css('padding-top') + $('body').css('border-top');
var calc = $(this).offset().top + bodyOffset;
答案 1 :(得分:0)
而不是absolute
尝试使用fixed
作为弹出元素。如果你没有对body
如果仍然不准确而不是.offset()。顶部有机会https://developer.mozilla.org/en-US/docs/Web/API/element.getBoundingClientRect