// JavaScript Document 2016 zouyang function startMove(obj,json,fn){ //快速 iCur除以3 完美运动框架 完美的同时运动框架+链式运动-运用json clearInterval(obj.timer); obj.timer = setInterval(function(){ var bStop = true; for(var attr in json){ var iCur = 0; if( attr == 'opacity'){ iCur = Math.round(getStyle(obj,attr)*100); } else{ iCur = parseInt(getStyle(obj,attr)); } var iSpeed = (json[attr] - iCur)/3; iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); //搞定小数点像素问题 if(iCur != json[attr]){ bStop = false; } if(attr == 'opacity'){ obj.style.filter = 'alpha(opacity='+ (iCur+iSpeed) +')'; obj.style.opacity = (iCur+iSpeed)/100; } else{ obj.style[attr] = iCur + iSpeed + 'px'; } } if(bStop){ clearInterval(obj.timer); if(fn){ fn.call(obj); } } },30); } function startMove2(obj,json,fn){ // iCur/7 完美运动框架 完美的同时运动框架+链式运动-运用json clearInterval(obj.timer); obj.timer = setInterval(function(){ var bStop = true; for(var attr in json){ var iCur = 0; if( attr == 'opacity'){ iCur = Math.round(getStyle(obj,attr)*100); } else{ iCur = parseInt(getStyle(obj,attr)); } var iSpeed = (json[attr] - iCur)/7; iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); //搞定小数点像素问题 if(iCur != json[attr]){ bStop = false; } if(attr == 'opacity'){ obj.style.filter = 'alpha(opacity='+ (iCur+iSpeed) +')'; obj.style.opacity = (iCur+iSpeed)/100; } else{ obj.style[attr] = iCur + iSpeed + 'px'; } } if(bStop){ clearInterval(obj.timer); if(fn){ fn.call(obj); } } },30); } // tween 开始 function getNow() { return new Date().getTime(); } function startMove3(obj,json,time,fx,callBack){ // tween 动画效果 time时间 fx形式我用的elasticOut弹性曲线做琴弦效果 回调琴弦效果没用 var iNowTime = getNow(); var iCur = {}; for (var attr in json) { if(attr == "opacity") { iCur[attr] = Math.round(getStyle(obj , attr)*100 ); } else { iCur[attr] = parseInt(getStyle(obj,attr)); } } clearInterval(obj.oTimer); obj.oTimer = setInterval( function(){ var iTime = time-Math.max(0,iNowTime - getNow() + time); for (var attr in json) { var iVal = Tween[fx](iTime, iCur[attr], json[attr] - iCur[attr], time) if(attr == "opacity") { obj.style.opacity = iVal/100; obj.style.filter = "alpha(opacity="+ iVal +")"; } else { obj.style[attr] = iVal + "px"; } } if(iTime == time ) { clearInterval(obj.oTimer); if(callBack) { callBack.call(obj); } } },14); } //文字琴弦运动 function qinxianMove( obj ) { var iObjHeight=obj.offsetHeight; var sHtml = obj.innerHTML; obj.innerHTML = ""; /* obj.style.height = "30px"; obj.style.lineHeight = "30px"; obj.style.position = "relative"; obj.style.paddingTop = "6px"; */ obj.style.visibility = "visible"; for(var j=0;j"; //给每一个字符加一个span包裹起来,好定位 } var aSpan=obj.children; for(var j=0;j0?1:-1; if(this.startTop+iDis>=0 && this.startTop+iDis< (iObjHeight-iSpanHeight)) { for(var j=0;jMath.abs(nub2-j)) { aSpan[j].style.top=aSpan[j].startTop+(Math.abs(iDis)-Math.abs(nub2-j))*iNub+"px"; } else { aSpan[j].style.top=aSpan[j].startTop+"px"; } } } }; aSpan[nub2].onmouseout=function(ev) { for(var j=0;jdocument.documentElement.clientHeight-obj.offsetHeight) { T=document.documentElement.clientHeight-obj.offsetHeight; } if(L<0) { L=0; } if(L>document.documentElement.clientWidth-obj.offsetWidth) { L=document.documentElement.clientWidth-obj.offsetWidth; } var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft; obj.style.left=L+scrollLeft+'px'; obj.style.top=T+scrollTop+'px'; } document.onmouseup=function() { document.onmousemove=null; document.onmouseup=null; } return false; } } //拖拽框架2---运动回原位 var iTuoDong = false; function drag2(obj) { obj.onmousedown=function(ev) { var ev=ev||event; var iLeft=ev.clientX-obj.offsetLeft; var iTop=ev.clientY-obj.offsetTop; var beforeLeft = parseInt(obj.style.left); var beforeTop = parseInt(obj.style.top); document.onmousemove=function(ev) { /* for (var k =0;kdocument.documentElement.clientHeight-obj.offsetHeight) { T=document.documentElement.clientHeight-obj.offsetHeight; } if(L<0) { L=0; } if(L>document.documentElement.clientWidth-obj.offsetWidth) { L=document.documentElement.clientWidth-obj.offsetWidth; } var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft; obj.style.left=L+scrollLeft+'px'; obj.style.top=T+scrollTop+'px'; } document.onmouseup=function() { document.onmousemove=null; document.onmouseup=null; startMove2(obj,{left:beforeLeft,top:beforeTop}) } return false; } } //阻止默认行为 function preDef(evt) { var e = evt || window.event; if (e.preventDefault) { e.preventDefault(); } else { e.returnValue= false; } }