2011-10-29 44 views
0

我寫了一個jQuery代碼來跟蹤鏈接的位置(position:fixed),然後用它作爲DIV(坐在它下面)的位置。所以當用戶滾動時,固定鏈接(top:0; left:0; right:0;)將自動粘貼到頂部,我的jQuery代碼使div在鏈接移動時跟隨鏈接,但它是滯後的。div堅持一個立場:固定鏈接?

<a href="link" id="link" style="position:fixed;top:0;left:0;right:0;">Link</a> 
<div id="divsticktolink" style="width:200px;height:200px;position:absolute;">Test</div> 

jQuery代碼:

$(window).scroll(function() { 
    var link = $("#link"); 
    var position = link.offset(); 
    var top = position.top + 10; 
    $('#divsticktolink').css('left' , position.left + 'px'); 
    $('#divsticktolink').css('top' , top + 'px'); 
}); 

我怎樣才能解決laggy一部分?

P/S:我知道我可以通過將它們放在一個div這是position:fixed,但我想試用這種技術,可以存檔一個光滑的。

+0

它不會變得光滑,bes你可以做的是'animate()',而不是立即設置位置。 –

回答

0

我不知道這是否會解決滯後,但您可以通過在這兩條線相結合更有效率......

$('#divsticktolink').css('left' , position.left + 'px'); 
$('#divsticktolink').css('top' , top + 'px'); 

這個......

$('#divsticktolink').css({ 
          'left' : position.left + 'px', 
          'top' : top + 'px' 
}); 

var聲明也可以組合,但它可能沒有太大的影響...

var link = $("#link"), 
    position = link.offset(), 
    top = position.top + 10;