2010-11-26 13 views
1

基本的にユーザーが画像をクリックして画像が25px右に移動するプログラムを作成しようとしています。画像をクリックすると移動しますが、画像がウィンドウの右側を通過するとウィンドウの左に戻るコードを追加しようとしました。私は、アニメーションのプロシージャでIfステートメントを使用しようとしましたが、動作しないようです。ここに私が持っているものがあります:if文と位置移動についてのjQueryの質問

$('#image').click(function() { 
$(this).animate({ 
    left: '+=155', 
function() { 
    if ($(this).left > $(document).width) { 
$(this).left = 0 
    } 
    }; 

    }); 

});


私は間違った構文を使用していますか、私の関数が間違っていますか?ご協力いただきありがとうございます。私はこれを行うだろう

答えて

1

...

$('#image').click(function() { 

    $(this).animate({ 
      left: '+=155', 
      function() { 
       if ($(this).offset().left > $(document).width) { 
        $(this).css({ left: 0 }); 
       } 


     }); 
}); 

本当にそれが最初の元leftにシフトピクセルを追加し、必ず幅を超えないよう作るほうが良いと思いますけど。その場合、return falseと要素をまったく移動しません。

計算する前にオフセットの幅を#imageに追加することもできます。そうしないと、要素の左端が超過するまで超過したことをトリガーしません。

0

期間はどこですか?

$('#image').click(function() { 
    $(this).animate(
      { 
       left: '+=155' 
      }, 
      5000, 
      function() { 
       if ($(this).left > $(document).width) { 
       $(this).left = 0 
       }  
     ); 
}); 
、これを試してみてください
関連する問題