2011-08-03 7 views
3

リンクをクリックすると、赤いdivが表示され、click meリンクの下に座るようにしようとしています。divをjQueryを使用してページ上の特定の位置に移動するにはどうすればよいですか?

$('.clickMe').click(function() { 

    var pos = $(this).offset().top;   

    $('.myDiv').animate({ 
     marginTop: '-'+pos+'px', 
    }, 1000);  

}); 

<a href="" class="clickMe">Click Me</a> 
<br /><br /><br /><br /><br /><br /><br /><br /> 
<div style="position: absolute; border: 1px solid red; height: 50px; width: 50px" class="myDiv"></div> 

ここに私の失敗の試みです:

http://jsfiddle.net/SWqmb/4/

私はこの作業を取得するにはどうすればよいですか?

答えて

4

負のマージンは、望ましくない影響を持つことができ、topプロパティは、おそらくより良い選択であるアニメーション、代わりにこれを試してみてください:

$('.clickMe').click(function(e) { 

    e.preventDefault(); 

    var pos = $(this).offset().top;   

    $('.myDiv').animate({ 
     top: pos + $(this).height() 
    }, 1000); 

}); 

デモ:http://jsfiddle.net/SWqmb/6/

関連する問題