2011-08-14 8 views
0

私はクリック時にページの右から左にボックスを移動する機能を持っています。 divがウィンドウを終了し、私の関数に基づいて負の位置にあるとき、私はイベントを発生させたいです。私はしかし、divが画面の左側の端を通過するときに応答を得ない。誰でもアイデアはありますか?divが位置に達したときに実行

私はポジション($('#container').position().left/$(document).width())*100)が定義されていることを知っています。ページが最初にロードされたときに<を> 0に変更した場合、警告が発生します。

<script> 
$("#play").live('click', function() { 
    $("#container").animate({"left": "-=100%"}, 25000); 
}); 
if (($('#container').position().left/$(document).width())*100<0){ 
    alert('test'); 
} 
</script> 

答えて

3

あなたはanimatestepオプションを使用することができます。

step:アニメーションの各ステップの後に呼び出される関数を。このような

何か:

$("#container").animate({"left": "-=100%"}, { 
    duration: 25000, 
    step: function() { 
     if(($('#container').position().left/$(document).width())*100 < 0) { 
      alert('test'); 
     } 
    } 
}); 

とすぐに自分の位置のテストが真であるとして、あなたのalertを取得します。アニメーションは、#containerが画面の外に出ていても続行することができます。

+0

+1方法が良い解決策です。 – karim79

+0

優秀な答え、たくさんの感謝! – Scarface

+0

私はちょうど問題を発見しました。警告を出す代わりに、実際に$( '#preview_container')を実行しています。remove();要素が削除されるとすぐに、$( '#container')と言っているファイヤーバグで無制限のエラーが発生します。position()。leftはnullです。何かアイデアがありますか? – Scarface

関連する問題