アニメーション要素の位置を追跡しようとしています.2つのボタンがあります; 1つは要素を上に移動し、もう1つは下に移動し、それぞれが移動後に新しい位置を出力する必要があります..コードは次のとおりです。
<html>
<head>
<style>
div {
position:absolute;
background-color:#abc;
left:50px;
top :50px;
width:90px;
height:90px;
margin:5px;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
$("#up").click(function(){
$(".block").animate({"top": "-=50px"}, "slow");
top = $(".block").position().top;
left = $(".block").position().left;
$("#position").html("X: "+left+" , Y:"+top) ;
});
$("#down").click(function(){
$(".block").animate({"top": "+=50px"}, "slow");
top = $(".block").position().top;
left = $(".block").position().left;
$("#position").html("X: "+left+" , Y:"+top) ;
});
});
</script>
</head>
<body>
<button id="down">v</button> <button id="up">^</button>
<div class="block"></div><br/>
<p id="position"></p>
</body>
</html>
思うように動作しません。移動ごとに同じ結果が得られます:X: 50 , Y:[object Window]
どうすれば修正できますか? position().left
私が使用した関数position().top
は、要素の X と Y を取得する権利ですか?