我的网站中有一些元素是通过点击动画制作的。此动画大约需要3秒钟,因此用户可以为多个元素设置动画。我不希望他们能够做这样的事情,我的意思是当一个元素被动画时我想禁用其余的元素。无论如何,当元素位于animate
进程的中间时触发事件?
答案 0 :(得分:3)
基本上,您可以在为元素设置动画时添加一个类:
$('.someElementsToAnimate').on('click', function(){
if($('.animating').length) return;
$(this).addClass('animating').animate({/*...*/}, function(){$(this).removeClass('animating');});
});
看起来你正在复杂化你正在寻找的东西。
当然,如果你想要更具体的答案,你必须提供相关的代码,你没有做的事情。
答案 1 :(得分:1)
如果您使用jquery进行动画制作,可以使用回调选项调用动画(开始和完成)
https://api.jquery.com/animate/
例如
$( "#clickme" ).click(function() {
$( "#book" ).animate({
width: "toggle",
height: "toggle"
}, {
duration: 5000,
specialEasing: {
width: "linear",
height: "easeOutBounce"
},
start: function() {
console.log('start animation');
},
complete: function() {
console.log('end animation');
}
});
});
答案 2 :(得分:0)
找到它
$("some_elements").click(function(){
if($(".animatable_elements").is(":animated"))
return;
});