如何在动画速度期间禁用按钮?
how to disable button during animation speed?
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 毫秒)
在动画之前禁用并使用animate()
完成回调再次启用
function slide () {
if ( parseInt( $slideContainer.css('marginLeft') ) >= -2160 ) {
$('.button').addClass('disabled')
$slideContainer.animate({'margin-left': '-='+width},200, function(){
$('.button').removeClass('disabled')
});
}
}
我的解决方案包括添加 class disabled
来更改 css 规则,并防止使用 JavaScript preventDefault()
方法的默认行为。此外,将在动画结束时调用附加参数 callback
函数。在这种情况下,回调函数将删除 disabled
class.
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>
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 毫秒)
在动画之前禁用并使用animate()
完成回调再次启用
function slide () {
if ( parseInt( $slideContainer.css('marginLeft') ) >= -2160 ) {
$('.button').addClass('disabled')
$slideContainer.animate({'margin-left': '-='+width},200, function(){
$('.button').removeClass('disabled')
});
}
}
我的解决方案包括添加 class disabled
来更改 css 规则,并防止使用 JavaScript preventDefault()
方法的默认行为。此外,将在动画结束时调用附加参数 callback
函数。在这种情况下,回调函数将删除 disabled
class.
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>