1 //获取对象样式属性 2 function getStyle(obj, attr) 3 { 4 if(obj.currentStyle) 5 { 6 return obj.currentStyle[attr]; 7 } 8 else 9 { 10 return getComputedStyle(obj, false)[attr]; 11 } 12 } 13 14 //多物体任何值运动框架 15 function elemsMove(obj, attr, iTarget, fn) 16 { 17 if(obj.timer) 18 { 19 clearInterval(obj.timer); 20 } 21 var repeat = function() 22 { 23 //用getStyle函数获取通用样式值 24 var iStyle = 0; 25 26 //为支持透明度做判断处理 27 if(attr == 'opacity') 28 { 29 //为ispeed处理数为整数需*100,同时为避免使用小数需再取整 30 iStyle = parseInt(parseFloat(getStyle(obj, attr)) * 100); 31 } 32 else 33 { 34 iStyle = parseInt(getStyle(obj, attr)); 35 } 36 37 var ispeed = (parseInt(iTarget) - iStyle) / 8; 38 ispeed = ispeed > 0 ? Math.ceil(ispeed) : Math.floor(ispeed); 39 40 if(iStyle == iTarget) 41 { 42 clearInterval(obj.timer); 43 if(fn) 44 { 45 fn(); 46 } 47 } 48 else 49 { 50 if(attr == 'opacity') 51 { 52 obj.style.filter = 'alpha(opacity:' + (iStyle + ispeed) + ')'; 53 obj.style.opacity = (iStyle + ispeed) / 100; 54 } 55 else 56 { 57 obj.style[attr] = iStyle + ispeed + 'px'; 58 } 59 } 60 }; 61 obj.timer = setInterval(repeat, 30); 62 }