Javascript 动画不轻松

Javascript 动画不轻松,javascript,jquery,html,css,animation,Javascript,Jquery,Html,Css,Animation,我的过渡有些问题。下面是javascript/jquery 函数moveProgressBarv,a{ var getPercent=v/100; 变量getProgressWrapWidth=$'.ProgressWrapWidth'.width; var progressTotal=getPercent*getProgressWrapWidth; var animationLength=a; $'.progress bar'.stop.animate{ 左:总计 },动画长度,函数{ 如果

我的过渡有些问题。下面是javascript/jquery

函数moveProgressBarv,a{ var getPercent=v/100; 变量getProgressWrapWidth=$'.ProgressWrapWidth'.width; var progressTotal=getPercent*getProgressWrapWidth; var animationLength=a; $'.progress bar'.stop.animate{ 左:总计 },动画长度,函数{ 如果getPercent==1{ $'.progress'.css'height','auto'; $'.progress_checkout'.text“继续签出!”; }否则{ $'.progress'.css'height','2rem'; $'.progress_checkout'.text; } }; } .进度检查{ 文本对齐:居中; 保证金:自动0; 显示:块; 颜色:fff; 字体大小:粗体; 填充:2rem0; 过渡:缓进缓出0.6s; 字体大小:200%; } .progress\u签出:悬停{ 背景色:白色; 颜色:C6DA80; 光标:指针; } .进展{ 宽度:100%; 高度:2em; } .进度总结{ 背景:C6DA80; 利润率:20px0; 溢出:隐藏; 位置:相对位置; } .进度条{ 背景:F5; 左:0; 位置:绝对位置; 排名:0; }
jQuery的动画使用它自己的动画。不幸的是,只有swing和linear可用

jQuery库中唯一的实现是默认的,称为swing,以及一个以恒定速度进行的,称为linear的实现。插件的使用提供了更多的简化功能,最显著的是jQueryUI套件

你有两个选择

第一个是,使用它可以计时和组合多个动画。所以我建议切换回类并使用CSS

第二种是使用,它有以下缓解选项列表:

linear
swing
_default
easeInQuad
easeOutQuad
easeInOutQuad
easeInCubic
easeOutCubic
easeInOutCubic
easeInQuart
easeOutQuart
easeInOutQuart
easeInQuint
easeOutQuint
easeInOutQuint
easeInExpo
easeOutExpo
easeInOutExpo
easeInSine
easeOutSine
easeInOutSine
easeInCirc
easeOutCirc
easeInOutCirc
easeInElastic
easeOutElastic
easeInOutElastic
easeInBack
easeOutBack
easeInOutBack
easeInBounce
easeOutBounce
easeInOutBounce

您选择或喜欢什么取决于您。

谢谢您的帮助,但这最终是我的解决方案。使用不透明度并使a标记包含避免了从文本插入处突然跳转,从而使过渡平滑

if (getPercent === 1) {

    $('.progress').animate({height: "4rem"}, 1000);
    $('.progress_checkout').text('Proceed to checkout!');
    $('.progress_checkout').animate({opacity: 1}, 800);
} else {
    $('.progress').animate({height: "2rem"}, 1000);
    $('.progress_checkout').text(' ');
    $('.progress_checkout').animate({opacity: 0}, 800);
}