下拉菜单的jQuery Offset和Page Scroll

时间:2010-08-24 17:31:49

标签: jquery

我在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。

思想?

1 个答案:

答案 0 :(得分:0)

你也应该总结scrollTop()

$('.navButton').mouseenter(function(){
  $('.dropDownList', this).css({
    'display': 'block',
    'left': $(this).offset().left,
    'top': $(this).offset().top+$(this).height()+$(document).scrollTop()
  });
});