var oBox = document.getElementById('box');
var maxLeft = utils.win('clientWidth') - oBox.offsetWidth;
var step = 5;
var timer = null;
// 使用递归思想完成setTimout的轮询动画:
// 每一次在执行动画之前,首先把上一次设置的那一个没有用的定时器清除,以节约内存
function move() {
window.clearTimeout(timer);
var curLeft = utils.css(oBox, 'left');
if (curLeft + step >= maxLeft) { // 边界判断: 加上步长计算
utils.css(oBox, 'left', maxLeft);
return;
}
curLeft += step;
utils.css(oBox, 'left', curLeft);
timer = window.setTimeout(move, 10);
}
move();
使用setTimeout实现动画
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- •+ (void)transitionWithView:(UIView *)view duration:(NSTi...
- 去年底,公司项目需要,准备做动一套态天气效果,经过考虑,决定使用UIKit自带的粒子系统实现。其中做了雨、雪、雾(...