JS实用的动画弹出层效果实例
网络编程 2021-07-04 21:47www.168986.cn编程入门
这篇文章主要介绍了JS实用的动画弹出层效果,实例分析了javascript实现动画效果弹出层的方法,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了JS实用的动画弹出层效果的方法。分享给大家供大家参考。具体实现方法如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://.w3./TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://.w3./1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>动画弹出层</title> <style> .list{ position:relative;; background:#eee; border:1px #c solid; margin:10px; height:30px; width:100px; cursor :pointer ; } .listShow{ position:relative; background:#eff; border:1px #ddd solid; margin:10px; height:30px; width:100px; cursor :pointer ; } .ment{ position:absolute; left:0; display:none; position:absolute; border:1px #c solid; background:#fee; width:200px; height:200px; overflow:hidden; z-index:100; } </style> </head> <body> <div class="" id="show"> 0 </div> <div class="list" id="list1">1 <div class="ment" id="ment1">内容显示111<br/> </div> <div class="list" id="list2">2 <div class="ment" id="ment2">内容显示222</div> </div> <div class="list" id="list3">3 <div class="ment" id="ment3">内容显示333</div> </div> </body> </html> <script> var zindex=0; function $id(id){ return document.getElementById(id); } var Bind = function(object,fun){ var args = Array.prototype.slice.call(arguments).slice(2); return function(){ return fun.apply(object,args); } } function addEventHandler(oTarget, sEventType, fnHandler){ if(oTarget.addEventListener){ oTarget.addEventListener(sEventType, fnHandler, false); } else if(oTarget.attachEvent){ oTarget.attachEvent('on' + sEventType, fnHandler); } else{oTarget['on' + sEventType] = fnHandler;} } var Shower=function(){ this.list=null; this.ment=null; this.moveLeft=80; this.moveTop=20; this.height=150; this.width=250; this.time=800; this.init=function(lisObj,Obj){ this.list=lisObj; this.ment=Obj; var _this=this; this._fnMove=Bind(this,this.move); (function(){ var obj=_this; addEventHandler(obj.list,"click",obj._fnMove); })(); }; this.move=function(){ var _this=this; var w=0; var h=0; var height=0; //弹出div的高 var width=0; //弹出div的宽 var t=0; var startTime = new Date().getTime();//开始执行的时间 if(!_this.ment.style.display||_this.ment.style.display=="none"){ _this.ment.style.display="block"; _this.ment.style.height=0+"px"; _this.ment.style.width=0+"px"; _this.list.style.zIndex=++zindex; _this.list.className="listShow"; var ment=_this.ment.innerHTML; _this.ment.innerHTML=""; //去掉显示内容 var timer=setInterval(function(){ var newTime = new Date().getTime(); var timestamp = newTime - startTime; _this.ment.style.left=Math.ceil(w)+"px"; _this.ment.style.=Math.ceil(h)+"px"; _this.ment.style.height=height+"px"; _this.ment.style.width=width+"px"; t++; var change=(Math.pow((timestamp/_this.time-1), 3) +1); //根据运行时间得到基础变化量 w=_this.moveLeftchange; h=_this.moveTopchange; height=_this.heightchange; width=_this.widthchange; $id("show").innerHTML=w; if(w>_this.moveLeft){ clearInterval(timer); _this.ment.style.left=_this.moveLeft+"px"; _this.ment.style.=_this.moveTop+"px"; _this.ment.style.height=_this.height+"px"; _this.ment.style.width=_this.width+"px"; _this.ment.innerHTML=ment; //回复显示内容 } },1,_this.ment); }else{ _this.hidden(); } } this.hidden=function(){ var _this=this; var flag=1; var hiddenTimer=setInterval(function(){ if(flag==1){ _this.ment.style.height=parseInt(_this.ment.style.height)-10+"px"; }else{ _this.ment.style.width=parseInt(_this.ment.style.width)-15+"px"; _this.ment.style.left=parseInt(_this.ment.style.left)+5+"px"; } if(flag==1 && parseInt(_this.ment.style.height)<10){ flag=-flag; } if(parseInt(_this.ment.style.width)<20){ clearInterval(hiddenTimer); _this.ment.style.left="0px"; _this.ment.style.="0px"; _this.ment.style.height="0px"; _this.ment.style.width="0px"; _this.ment.style.display="none"; if(_this.list.style.zIndex==zindex){ zindex--; }; _this.list.style.zIndex=0; _this.list.className="list"; } },1) } } window.onload=function(){ //建立各个菜单对象 var shower1=new Shower(); shower1.init($id("list1"),$id("ment1")); var shower2=new Shower(); shower2.init($id("list2"),$id("ment2")); var shower3=new Shower(); shower3.init($id("list3"),$id("ment3")); } </script>
效果如下图所示
希望本文所述对大家的javascript程序设计有所帮助。
上一篇:JS判断字符串包含的方法
下一篇:js日期范围初始化得到前一个月日期的方法
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程