源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JS动画效果代码3

  • 时间:2021-02-18 20:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JS动画效果代码3
慢慢来,这次实现了向任意方向扩展!
[u]复制代码[/u] 代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>Untitled Document</title>  <style type="text/css">  <!--  #apDiv1 {   position:absolute;   left:300px;   top:100px;   width:100px;   height:100px;   z-index:1;   background-color: #FF00FF;  }  #apDiv2 {   position:absolute;   left:402px;   top:100px;   width:100px;   height:100px;   z-index:2;   background-color: #00FFFF;  }  #apDiv3 {   position:absolute;   left:402px;   top:200px;   width:100px;   height:100px;   z-index:3;   background-color: #99FF00;  }  #apDiv4 {   position:absolute;   left:300px;   top:200px;   width:100px;   height:100px;   z-index:4;   background-color: #FFFF00;  }  -->  </style>  </head>  <body>      <div id="apDiv1"></div>      <div id="apDiv2"></div>  <div id="apDiv3"></div>  <div id="apDiv4"></div>  </body>  </html>  <script language="javascript" type="text/javascript">  function $(pId){   return document.getElementById(pId);  }  function JPos(){  }  JPos.getAbsPos = function(pTarget){   var _x = 0;   var _y = 0;   while(pTarget.offsetParent){     _x += pTarget.offsetLeft;     _y += pTarget.offsetTop;     pTarget = pTarget.offsetParent;   }   _x += pTarget.offsetLeft;   _y += pTarget.offsetTop;   return {x:_x,y:_y};  }  function JAniObj(){   this.obj = null;   this.interval = null;   this.orgPos = null;   this.targetPos = null;   this.orgSize = {w:50,y:50};  //初始长宽   this.targetSize = {w:100,y:100}; //目标长宽   this.step  = {x:10,y:10};  //步长 x:x方向 y:y方向   this.alpha  = {s:10,e:90,t:10};  //透明度,s初始,e结束,t步长  }  function JAni(){   var self = this;   var aniObjs = {};   var getCurrentStyleProperty = function(pObj,pProperty){    try{      if(pObj.currentStyle)      return eval("pObj.currentStyle." + pProperty);     else      return document.defaultView.getComputedStyle(pObj,"").getPropertyValue(pProperty);    }catch(e){     alert(e);    }   }   this.popup = function(pDiv,pOrgSize,pTargetSize,pStep,pAlpha){    var aniObj = new JAniObj();    aniObjs[pDiv] = aniObj;    with(aniObj){     obj   = $(pDiv);     orgPos  = JPos.getAbsPos(obj);     orgSize  = pOrgSize;     targetSize = pTargetSize;     step  = pStep;     alpha  = pAlpha;     with(obj.style){      overflow = "hidden";      position = "absolute";      width = pOrgSize.w + "px";      height = pOrgSize.h + "px";      left = orgPos.x + "px";      top = orgPos.y + "px";       if(document.all){       filter = "Alpha(opacity=" + pAlpha.s + ")";      }else       opacity = pAlpha.s / 100;     }       }    aniObj.interval = setInterval("popup_('" + pDiv + "')",10);   }   popup_ = function(pDivId){        pObj = aniObjs[pDivId];    var w = parseInt(pObj.obj.style.width);    var h = parseInt(pObj.obj.style.height);    if(w >= Math.abs(pObj.targetSize.w) && h >= Math.abs(pObj.targetSize.h)){     clearInterval(pObj.interval);     if(document.all)      pObj.obj.style.filter = "Alpha(opacity=" + pObj.alpha.e + ")";     else      pObj.obj.style.opacity = pObj.alpha.e / 100;          delete aniObjs[pObj.obj.id];    }else{     if(w < Math.abs(pObj.targetSize.w))      w += pObj.step.x;     if(h < Math.abs(pObj.targetSize.h))      h += pObj.step.y;     if(document.all){      var pattern = /opacity=(\d{1,3})/;      var result = pattern.exec(pObj.obj.style.filter);      if(result != null){       if(result[1] < pObj.alpha.e)        pObj.obj.style.filter = "Alpha(opacity=" + (result[1] + pObj.alpha.t) + ")"       else        pObj.obj.style.filter = "Alpha(opacity=" + pObj.alpha.e + ")";      }     }else{      if(pObj.obj.style.opacity < pObj.alpha.e / 100){       pObj.obj.style.opacity = parseFloat(pObj.obj.style.opacity) + pObj.alpha.t / 100;      }else       pObj.obj.style.opacity = pObj.alpha.e / 100;     }    }    pObj.obj.style.width = w + "px";    pObj.obj.style.height = h + "px";    if(pObj.targetSize.w < 0){     var vLeft = parseInt(getCurrentStyleProperty(pObj.obj,"left"));     vLeft = isNaN(vLeft) ? 0 : vLeft;     pObj.obj.style.left = vLeft - pObj.step.x + "px";    }    if(pObj.targetSize.h < 0){     var vTop = parseInt(getCurrentStyleProperty(pObj.obj,"top"));     vTop = isNaN(vTop) ? 0 : vTop;     pObj.obj.style.top = vTop - pObj.step.y + "px";    }     }  }  var ani = new JAni();   ani.popup(      "apDiv1",      {w:50,h:50}, //初始长宽      {w:200,h:200}, //目标长宽      {x:8,y:8},  //步长      {s:10,e:80,t:10}//透明度 起始,结束,步长      );   ani.popup(      "apDiv2",      {w:50,h:50}, //初始长宽      {w:-200,h:200}, //目标长宽      {x:8,y:8},  //步长      {s:10,e:40,t:2}//透明度 起始,结束,步长      );   ani.popup(      "apDiv3",      {w:50,h:50}, //初始长宽      {w:-200,h:-200},//目标长宽      {x:8,y:8},  //步长      {s:10,e:40,t:10}//透明度 起始,结束,步长      );   ani.popup(      "apDiv4",      {w:50,h:50}, //初始长宽      {w:200,h:-200},//目标长宽      {x:8,y:8},  //步长      {s:10,e:50,t:10}//透明度 起始,结束,步长      );    </script> 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部