function animate(obj, json, fn) {
clearInterval(obj.timer);
obj.timer = setInterval(function () {
var flag = true;
for (var k in json) {
if (k === "opacity") {//特殊处理
//var leader = parseInt(getStyle(obj, k)) || 0;
var leader = getStyle(obj, k) * 100;//1
// 0 || 1 结果是1 那么如果透明度当前的值是0 就会变成1
//所以这里不能给默认值 而且也没有必要 //透明度没有单位px 所以也不用parseInt 参与运算自动变为数字
var target = json[k] * 100;//0.5
var step = (target - leader) / 10;//0.5-1=-0.5 step = step > 0 ? Math.ceil(step) : Math.floor(step);//-1 leader = leader + step; //obj.style[k] = leader + "px"; obj.style[k] = leader / 100;//opacity没有单位 } else if (k === "zIndex") { obj.style.zIndex = json[k];//无需渐变 直接设置即可 } else { var leader = parseInt(getStyle(obj, k)) || 0; var target = json[k]; var step = (target - leader) / 10; step = step > 0 ? Math.ceil(step) : Math.floor(step); leader = leader + step; obj.style[k] = leader + "px"; } if (leader !== target) { flag = false; } } if (flag) { clearInterval(obj.timer); if (fn) {//如果有才调用 fn();//动画执行完成后执行 } } }, 15);}function getStyle(obj, attr) { if (window.getComputedStyle) { return window.getComputedStyle(obj, null)[attr]; } else { return obj.currentStyle[attr]; }}
无标题文章
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...