更好的方式来运行动画的有限循环
Better way to run a finite cycle of animations
首先,这段代码虽然丑陋,但在所有情况下都是有效的。然而,它真的让我既恶心又疯狂。
对于懒惰的人来说,糟糕的主要代码部分是:
setTimeout(function() {
toggle(); //off
setTimeout(function() {
toggle(); //on
setTimeout(function() {
toggle(); //off
setTimeout(function() {
toggle(); //on, stays for stallTime
setTimeout(function() {
toggle(); //off
callback();
}, stallTime);
}, 300);
}, 300);
}, 300);
}, 300);
我当然喜欢通过改变元素上的CSS类来控制我的动画。然而,transitionend
和webkitTransitionEnd
等是不可靠的。我是被迫使用这种丑陋的代码吗?理想情况下,我希望能够设置一个可变数量的"闪烁",但这段代码太俗套了。
请把我从污秽中拯救出来。
var count = 5;
var i = setInterval(function() {
toggle();
count--;
if(count == 0) {
clearInterval(i);
callback();
}
}, 300);
为了避免setInterval
,我写了一个递归函数:
// link.addClass('hover'); //on - no longer needed
flash = function(count) {
if (count > 1) {
setTimeout(function() {
toggle();
flash(count - 1);
}, 300);
} else {
setTimeout(function() {
toggle(); //off
callback();
}, stallTime);
}
}
flash(6); // 2 * the number of flashes.
相关文章:
- 这个循环动画的javascript代码更少
- 由添加/删除类组成的循环“动画”
- 使用 svg.js 循环动画
- 对象构造函数 - 管理循环动画
- 彩虹色文本的循环动画
- 循环动画javascript,SetInterval只工作一次
- 如何在jQuery中循环动画
- 使用velocity.js循环动画
- 使用jsanim循环动画
- 如何循环动画和同一个src的交叉渲染图像
- for循环动画的导航控件
- 点击循环动画
- 移除循环动画
- jQuery循环动画
- limeJS循环动画;t显示
- 谷歌地图JS API v3和循环动画gif
- 可以在Javascript中使用循环动画和/或快速动画
- jQuery循环动画从一开始就
- 如何通过 jquery 或 CSS 放大和缩小循环动画中的元素
- 如何创建一个循环动画,无限地改变不同的背景颜色