2010-08-24 74 views
0

我有一个与.offset()在jQuery中的最大值的小问题。jQuery偏移和页面滚动下拉菜单

我正在做一个下拉菜单功能结合到我的选择如下:

$('.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

你应该总结scrollTop()

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

其实我不得不减去scrollTop的......但是,这完美地工作。谢谢 :) – 2010-08-24 17:53:43