2012-11-15 46 views
0

我在jQuery中有以下代碼,它爲div div頂點設置了動畫。如何在jquery動畫中設置最大的margin-top?

如何設置它,以便一旦邊距頂部等於900px,禁用點擊事件?

$("#tmbUp").click(function(){ 
$("#tmbHolder").animate({"marginTop": "-=100px"}, "slow"); 
}); 

$("#tmbDown").click(function(){ 
$("#tmbHolder").animate({"marginTop": "+=100px"}, "slow"); 
}); 
+0

檢查'bind/unbind' jquery方法 – anson

回答

2

在調用animate函數之前,只需檢查頂部邊距的當前值。如果它是900(或更少),請不要製作動畫。

1

animate方法可以選擇回調函數。

你想要做的是這樣的:

$("#tmbDown").click (function(){ 
    $("#tmbHolder").animate (
    {"marginTop": "+=100px"}, 
    "slow", 
    "swing", 
    // The callback function 
    function() { 
     if ($(this).css ('marginTop') >= "900px") { 
     $("#tmbDown").unbind ('click'); 
     } 
    } 
); 
}); 
1

我假設你要禁用的單擊事件只有當marginTop爲> = 900,並再次啓用它,如果用戶減少時/邊緣頂部。我建議利用內置於動畫功能中的回調函數。

$("#tmbUp").click(function(){ 
    $("#tmbHolder").animate({"marginTop": "-=100px"}, "slow", 
     function() { 
      // if tmbHolder's marginTop < 900px, enable #tmbDown 
     } 
    ); 
}); 

$("#tmbDown").click(function(){ 
    $("#tmbHolder").animate({"marginTop": "+=100px"}, "slow", 
     function() { 
      // if tmbHolder's marginTop >= 900px, disable #tmbDown 
     } 
    ); 
}); 

希望能爲你做到。