一个完美的运动框架是经过不断地改善调整过来的,可以适合各种样式的运动。在JS运动中一下几点是至关重要的:
1.不加绝对定位的话是肯定不会动的!
2.运动框架中:在开始运动时,关闭已有定时器。把运动和停止隔开。(if、else)
3.透明度在IE中支持:filter:alpha(opacity:30),在FF和Chrome中opacity:0.3。
4.缓冲运动中,距离越远,速度越大,速度由距离决定。速度要取整,不然会出现抖动。取整的方法有:Math.ceil 向上取整;Math.floor向下取整;Math.abs取绝对值;Math.round四舍五入;
而框架的演变也是慢慢一步步优化过来的:
startMove(iTarget)
startMove(obj,iTarget)
startMove(obj,attr,iTarget)
startMove(obj,attr,iTarget,fn)
startMove(obj,json)
startMove(obj,json,fn)
运动框架如下:
function getStyle(obj, name)
{
if(obj.currentStyle)
{
return obj.currentStyle[name];
}
else
{
return getComputedStyle(obj, false)[name];
}
}
//startMove(oDiv, {width: 400, height: 400})
function startMove(obj, json, fnEnd)
{
clearInterval(obj.timer);
obj.timer=setInterval(function (){
var bStop=true;