完美运动框架
2015-11-24 17:49
302 查看
function startMove(obj, json, fnEnd) //换为json,如:startMove(oDiv, {width: 400, height: 400}) { clearInterval(obj.timer); obj.timer = setInterval(function() { var bStop = true; //关键 //假设:所有的值都已经到了 for (var attr in json) //用一个循环,把原来的那套东西包在里面,每次定时器执行的时候,都会循环,循环的次数取决于json里面写了什么 { var cur = 0; if (attr == 'opacity') { cur = Math.round(parseFloat(getStyle(obj, attr)) * 100); //因为这里,会出问题,小数 } else { cur = parseInt(getStyle(obj, attr)); } var speed = (json[attr] - cur) / 6; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); if (cur != json[attr]) bStop = false; if (attr == 'opacity') { obj.style.filter = 'alpha(opacity:' + (cur + speed) + ')'; obj.style.opacity = (cur + speed) / 100; } else { obj.style[attr] = cur + speed + 'px'; } } if (bStop) //如果所有的值都到了,关闭定时器 { clearInterval(obj.timer); if (fnEnd) fnEnd(); } }, 30); } function getStyle(obj, name) { if (obj.currentStyle) { return obj.currentStyle[name]; } else { return getComputedStyle(obj, false)[name]; } }
相关文章推荐
- DOM-元素节点内联样式
- Mybatis的动态sql详解,区别于传统的sql拼写
- Django Web实现动态三级联动
- 清华OJ TSP旅行商问题
- linux select 系统调用
- Android 窗口全屏
- 我验证过的正则表达式
- 七、JavaScript字符串
- Linux配置防火墙,开启访问端口
- DOM-元素节点几何量和滚动几何量
- 关于返回NULL时的讨论
- 十进制转为二进制
- bzoj2733【hnoi2012】永无乡
- samba共享线上实测
- Oracle创建临时表:CREATE GLOBAL TEMPORARY TABLE
- Android学习笔记系列开篇
- iOS中的urlString里面有时含有中文,nsstring延展
- 你真的会使用Chrome开发者工具吗?
- 1-1 07:输出浮点数
- java异常