2010-08-24 40 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