如何在动画速度期间禁用按钮?

时间:2018-05-28 18:12:01

标签: javascript jquery jquery-animate buttonclick

 var slideContainer = ('#slider');  
 var width = 720;

 function slide () {  
   if ( parseInt( $slideContainer.css('marginLeft') ) >= -2160 ) {
       $slideContainer.animate({'margin-left': '-='+width},200);
   }
 }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> 
</script>

<a class='button' onclick='slide()'></a>

我想仅在动画持续时间(动画速度= 200毫秒)

期间禁用该按钮

2 个答案:

答案 0 :(得分:1)

在动画之前禁用并使用animate()完全回调再次启用

 function slide () {  
   if ( parseInt( $slideContainer.css('marginLeft') ) >= -2160 ) {
       $('.button').addClass('disabled')
       $slideContainer.animate({'margin-left': '-='+width},200, function(){
           $('.button').removeClass('disabled')
       });
   }
 }

答案 1 :(得分:1)

我的解决方案包括添加类disabled以更改它的css规则,并使用JavaScript preventDefault()方法防止默认行为。此外,将在动画结束时调用aditional参数callback函数。在这种情况下,回调函数将删除disabled类。

&#13;
&#13;
var slideContainer = $('#slider');  
var width = 720;

function slide(event) {
  if(!slideContainer.hasClass('disabled')) {
    slideContainer.addClass('disabled');
    slideContainer.animate({'margin-left': '-='+width}, 200, function(){
      slideContainer.removeClass('disabled');
    });
  }
  else {
    event.preventDefault();
  }
}
&#13;
.disabled {
 color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="slider" class='button' onclick='slide()'>Test</a>
&#13;
&#13;
&#13;