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毫秒)
期间禁用该按钮答案 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
类。
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;