我在jQuery中的.offset()。top值有一个小问题。
我正在创建一个与我的选择器绑定的下拉菜单功能,如下所示:
$('.navButton').mouseenter(
function(){
var x = $(this).offset().left;
var y = $(this).offset().top;
var height = $(this).height();
var dList = $(this).find('.dropDownList').css('display','block');
$(dList).css('left',x);
$(dList).css('top',y+height);
}
);
它神奇地工作,直到我向下滚动页面并且我的.dropDownList继续显示在偏移位置。换一种说法。如果激活该功能的div是y:200px 并且页面没有滚动,下拉列表很好地出现在我的.navButton下面。但是,当我滚动时,.dropDownList继续出现在y:200px,即使我的.navButton现在只是y:100px。
思想?
答案 0 :(得分:0)
你也应该总结scrollTop()
$('.navButton').mouseenter(function(){
$('.dropDownList', this).css({
'display': 'block',
'left': $(this).offset().left,
'top': $(this).offset().top+$(this).height()+$(document).scrollTop()
});
});