2012-11-15 6 views
0

jQuery에서 div marginTop을 움직이는 다음 코드가 있습니다.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 메서드에는 콜백 함수를 사용할 수있는 옵션이 있습니다. 나는 사용자가 감소하면 때/당신이 marginTop가> = 900 인 경우에만 클릭 이벤트를 비활성화하고 다시 활성화한다고 가정

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

: 당신이 원하는 무엇

이 같은 것입니다 marginTop. 애니메이션 기능에 내장 된 콜백 함수를 활용하는 것이 좋습니다.

$("#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 
     } 
    ); 
}); 

희망은 당신을 위해 그것을.

관련 문제