javascript - 创建一个没有重叠动画的 jquery 固定动画

标签 javascript jquery html

我有这个动画http://codepen.io/DWboutin/pen/DFJze

当我快速浏览这些选项卡时,动画会产生非常奇怪的东西。

我怎样才能阻止它?我尝试了 .stop(true,true),我尝试创建队列,但我可以使其更干净。

鼠标进入时触发该函数

var becomeBigger = function(element){
    deplace(element.index(),function(){
        element.dequeue();
        element.queue(function(){
            $(this).animate({top: '118px', height: '435px',width: '248px'},settings.timeAnimIn,settings.easingIn,function(){
                $(this).addClass('active');
                deplace(element.index());
            });
            $(this).children('.img').children('.noiretblanc').animate({'opacity':0},settings.timeAnimIn,settings.easingIn);
            $(this).children('.img').children('.couleur').animate({opacity: 1, top: '-321px'},settings.timeAnimIn,settings.easingIn);
            $(this).children('.img').animate({height: '321px'},settings.timeAnimIn,settings.easingIn);
            $(this).children('.titre').animate({height: '57px', width: '228px', backgroundColor: '#4696a7'},settings.timeAnimIn,settings.easingIn);
            $(this).children('.titre').children('h2').animate({fontSize : '22px'},settings.timeAnimIn,settings.easingIn);
            $(this).children('.titre').children('h3').animate({fontSize : '18px'},settings.timeAnimIn,settings.easingIn);
            $(this).children('.btn-verso').css({backgroundPosition : '0 0'});
            $(this).dequeue();
        });
    });

}

这个在 mouseleave 上

var recoverSize = function(element){
    replace(element.index(),function(){
        element.queue(function(){
            $(this).removeClass('active');
            $(this).animate({top: '148px',height: '385px',width: '214px'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.img').children('.noiretblanc').animate({'opacity':1},settings.timeAnimOut,settings.easingOut);
            $(this).children('.img').children('.couleur').animate({opacity: 0, top: '-277px'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.img').animate({height: '277px'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.titre').animate({height: '50px', width: '194px', backgroundColor: '#959595'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.titre').children('h2').animate({fontSize : '20px'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.titre').children('h3').animate({fontSize : '16px'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.btn-verso').css({backgroundPosition : '0 -72px'});
            $(this).dequeue();
        });
    });

}

感谢您的帮助

最佳答案

在开始当前动画之前,您需要停止所有动画,这使用 jQuery 很容易做到:

stop()

关于javascript - 创建一个没有重叠动画的 jquery 固定动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14339088/

相关文章:

javascript - 如何循环浏览 Link 中的内容?

javascript - 在 jquery 循环中为选项设置文本时出错

javascript - 如何使用 jQuery 将负数 padding-top 添加到 html 元素

javascript - 语法错误 : missing ] after element list when try to pass object parameter to onclick function

javascript - 似乎无法引用动态添加的字段

django - 可以使用 Django 构建 HTML5 移动应用程序吗?

jquery - 如何通过在背景 Canvas 中绘制线条来连接两个 HTML 元素?

javascript - 在 Ionic Framework/Angular JS 中的 Controller 之间共享数据

jquery 在列表框中选择的任何项目

html - 无法使用 css 将鼠标悬停在图像链接内