2010-11-26 39 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 
       }  
     ); 
});