【问题标题】:how to disable button during animation speed?如何在动画速度期间禁用按钮?
【发布时间】:2018-05-28 18:12:00
【问题描述】:
 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 毫秒)

【问题讨论】:

标签: javascript jquery jquery-animate buttonclick


【解决方案1】:

动画前禁用,使用animate()完成回调再次启用

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

【讨论】:

  • 好的,但我怎样才能让禁用的类停止按钮.. 是 css 吗?
  • 是的,使用 css 或使用实际的 &lt;button&gt; 并使用 prop('disabled', true/false)
【解决方案2】:

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

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();
  }
}
.disabled {
 color: red;
}
<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>

【讨论】:

猜你喜欢
  • 2018-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 1970-01-01
相关资源
最近更新 更多