2011-10-29 13 views
0

私は、リンクの位置を追跡するためにjQueryコードを書いています(position:fixed)。それをDIV(そのすぐ下にある)の位置として使用します。したがって、ユーザーがスクロールすると、固定されたリンク(top:0; left:0; right:0;)が自動的に先頭にスティックされますが、移動するときには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'); 
}); 

どのように私はラグの部分を解決できますか?

P/S:私はdivの両方をposition:fixedに入れてアーカイブすることができますが、この手法を試してみたいと思います。

+0

スムーズではありません。あなたができることは、直ちに位置を設定するのではなく 'animate()'です。 –

答えて

0

この中

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

...これは遅れを解決する場合、私は知りませんが、あなたはこれらの2行を組み合わせることで、それがより効率的に行うことができます...

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

var宣言も組み合わせることができますが、影響はそれほどありません。

var link = $("#link"), 
    position = link.offset(), 
    top = position.top + 10; 
関連する問題