2012-01-07 17 views
1

私の宿題で私はdivをアニメーションしようとしていて、マウスを最後の位置に追従しようとしています。さて、私のDIVはビューポート上で狂ってしまいます。それは価値を追加しているだけでなく、それらに移動するようなものです。あなたは私のコードを見て、私を啓発することができますか?ありがとうございました。 P.S. Ufoの絶対位置は0,0です。DIVのマウス位置が狂ってしまう

var ufo = $('#ufo'); 
var posX; 
var posY; 


$(document).mousemove(function(e) { 

posX = e.pageX; 
posY = e.pageY; 

}); 

window.setInterval(function() { 

ufo.animate({ 
    top: posX, 
    left: posY 
}, '1000'); 
}, 3000); 

答えて

1

あなたのUFOは、うっかり3秒ごとに新しい位置に移動していますよね?私はあなたがアニメーションとsetIntervalを捨て、ちょうどこれをしたいと思う:

$(document).mousemove(function(e) { 
    ufo.css('left', e.offsetX || e.layerX || e.pageX); 
    ufo.css('top', e.offsetY || e.layerY || e.pageY); 
}); 
+0

これは良い解決策のように思えます。マウスの位置が毎回 "追加"されていた場合、UFO divはビューポートからすばやく消えます。 –

+0

@Andrew - ありがとう、もちろん私はcssを最初に呼び出すことを忘れていました:) –

+0

実際、私のUFOは本当に奇妙な位置に移動します。私はe.pageXとYを記録しており、両方とも正しいです。しかし、たとえ彼らが(200,200)と言っても、私のDIVは他のポジションに行きます。私のコードに何か間違っているのだろうかと思います。 – Daniele

関連する問題