2016-05-18 4 views
0

太陽の周りを回転する地球のアニメーションがあります。太陽は置かれているが、地球は姿勢を変え続ける。.position()メソッドが警告を発しています。

"Aligned!"というメッセージが表示されます。地球が太陽と完全に垂直に整列しているときには私はそれをテストしてきましたが、ページがロードされ、条件文がページがロードされたときにアースの位置に対応するとき以外はアースメッセージを得ることができません。

以下のコードでは、地面の位置が400を超えているため、地面の位置のみが表示されます。したがって、positionplanet.left == positionsun.leftのときに警告メッセージが表示されますが、何も表示されません。

var possun = $("#Sun"); 
var positionsun = possun.position(); 

var posplanet = $("#Earth"); 
var positionplanet = posplanet.position(); 

if (positionplanet.left >= 400) 
{ 
alert(positionplanet.left + " and " + positionplanet.top); 
} 

私はアニメーションのためJSfiddleを持っていますが、何らかの理由で私は、ランダムな文字列よりも、他のすべてのものを警告するトラブルを抱えています。だから私はそれをリンクしますが、それは主に参考になるでしょう。 Demo:

答えて

2

私はあなたの数学をチェックしていないので、これは間違いないと思われますが、小数点以下は-15です。

位置を最も近いピクセルに一致させることができれば、それを機能させることができます(誰も賢明ではない)。また、JSFiddleのようなグローバルスコープではなく、アニメーションのすべてのステップをチェックする必要があります(ページをリロードするとアラートが表示されるのは不思議ではありません:))

animate()関数はトリックでした:また

var positionsun = $("#Sun").position(); 
var positionplanet = $("#Earth").position(); 

if(Math.round(positionplanet.left) == Math.round(positionsun.left)) 
    alert("aligned!"); 

を($(...)のような)jQueryの機能を使用している場合、あなたはjQueryのを含めていることを確認してください。

+0

あなたが好きな人は、世界をより良い場所にすることができます。それは働いてくれてありがとう! – JohnMichael

関連する問題