/* * 事件绑定 */ function myAddEvent(obj,ev,fn){ if(obj.attachEvent){ obj.attachEvent('on' + ev,fn); }else{ obj.addEventListener(ev,fn,false); } } /* * 获取样式值 */ function getStyle(obj, name) { if(obj.currentStyle) { return obj.currentStyle[name]; } else { return getComputedStyle(obj, false)[name]; } } /* * 缓冲运动特效函数 */ function startMove(obj, attr, iTarget) { clearInterval(obj.timer); obj.timer = setInterval(function() { var cur = 0; if(attr == 'opacity') { cur = Math.round(parseFloat(getStyle(obj, attr)) * 100); } else { cur = parseInt(getStyle(obj, attr)); } var speed = (iTarget - cur) / 6; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); if(cur == iTarget) { clearInterval(obj.timer); } else { if(attr == 'opacity') { obj.style.filter = 'Alpha(opacity:' + (cur + speed) + ')'; obj.style.opacity = (cur + speed) / 100; document.getElementById('txt1').value = obj.style.opacity; } else { obj.style[attr] = cur + speed + 'px'; } } }, 30); } /* * 完美缓冲运动特效函数 */ function startMove1(obj, json, fnEnd) { clearInterval(obj.timer); obj.timer = setInterval(function() { var bStop = true; //假设所有的值都已经到了 for(var attr in 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; document.getElementById('txt1').value = obj.style.opacity; } else { obj.style[attr] = cur + speed + 'px'; } } if(bStop){ clearInterval(obj.timer); if(fnEnd){ fnEnd(); } } }, 30); }