在jQuery中动画元素时需要一个事件

时间:2014-03-13 14:32:21

标签: javascript jquery css events animation

我的网站中有一些元素是通过点击动画制作的。此动画大约需要3秒钟,因此用户可以为多个元素设置动画。我不希望他们能够做这样的事情,我的意思是当一个元素被动画时我想禁用其余的元素。无论如何,当元素位于animate进程的中间时触发事件?

3 个答案:

答案 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;


});