JS+CSS实现分类动态选择及移动功能效果代码
内容摘要
本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:
这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类
这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类
文章正文
本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:
这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,点击运行一下你会知道它的奥妙,它用JavaScript模拟出了Flash动画的效果,很贴切。
运行效果截图如下:
在线演示地址如下:
http://demo.phpstudy.net/js/2015/js-css-cha-type-move-style-demo/
具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | <HEAD> <TITLE>JS+CSS商品动态选择及移动功能</TITLE> <meta http-equiv= "Content-Type" content= "text/html; charset=GBK" > <style language= "javascript" > <!-- body, td{ font-size: 9pt; } .hidden{display:none;} .show{display:block;} --> </style> </HEAD> <BODY> <SCRIPT LANGUAGE= "JavaScript" > <!-- var speed=10; //速度 var ci = 10; //运动次数 var left=0; //方框左位置 var top=0; //方框上位置 var width=0; //方框宽 var height=0; //方框高 var aimleft=0; //目标左位置 var aimtop=0; //目标上位置 var aimwidth=0; //目标宽 var aimheight=0; //目标高 var lb=0; //左步长 var tb=0; //上步长 var wb=0; //宽步长 var hb=0; //高步长 var fk = null; var aim = null; var aim1 = null; function initObj(oid){ if (!fk){fk = document.getElementById( 'fk' );} if (!aim){aim = document.getElementById( 'aim' );} if (!aim1)aim1 = document.getElementById( 'aim1' ); if (oid) append(fk,document.getElementById(oid),true); } function append(o,oc,cloned){ while (o.hasChildNodes())o.removeChild(o.firstChild); if (cloned)oc = oc.cloneNode(true); oc.className = 'show' ; o.appendChild(oc); } function setSource(obj,oid){ initObj(oid); left = getOffset(obj).Left; top = getOffset(obj).Top; width = obj.offsetWidth; height = obj.offsetHeight; aimleft = getOffset(aim).Left; aimtop = getOffset(aim).Top; aimwidth = aim.offsetWidth; aimheight = aim.offsetHeight; fk.style.display= '' ; clearInterval(MyMar); } /** * 设置方向步长、宽高步长 */ function setStep(){ lb = (aimleft-left)/ci; tb = (aimtop-top)/ci; wb = (aimwidth-width)/ci; hb = (aimheight-height)/ci; } /** * 移动 */ function move(){ setStep(); left+=lb; top+=tb; width+=wb; height+=hb; if (left<aimleft-2 || top<aimtop-2 || width<aimwidth-2 || height<aimheight-2){ fk.style.left = left+ "px" ; fk.style.top = top+ "px" ; fk.style.width = width+ "px" ; fk.style.height = height+ "px" ; } else { if (fk) while (fk.hasChildNodes()){append(aim1,fk.firstChild);} hiddenFK(); clearInterval(MyMar) } } function hiddenFK(){ initObj(); fk.style.display= 'none' ; } /** * 取得某元素在页面中相对页面左上顶点的位置 */ function getOffset(obj){ var offsetleft = obj.offsetLeft; var offsettop = obj.offsetTop; while (obj.offsetParent != document.body) { obj = obj.offsetParent; offsetleft += obj.offsetLeft; offsettop += obj.offsetTop; } return {Left : offsetleft, Top : offsettop}; } var MyMar=setInterval(move,speed); //--> </SCRIPT> <div id= "fk" style= "position: absolute; width: 46px; height: 20px; border: 1px solid #000000 ; display: none" ></div> <TABLE style= "border: 1px solid #666666" cellspacing=1 bgcolor=#ff1111 cellpadding=4 border=0> <TR bgcolor=#ffffff> <TD onClick= "setSource(this,'t1');MyMar=setInterval(move,speed)" >ASP</TD> <TD onClick= "setSource(this,'t2');{MyMar=setInterval(move,speed)}" >PHP</TD> <TD onClick= "setSource(this,'t3');{MyMar=setInterval(move,speed)}" >ASP.NET</TD> <TD onClick= "setSource(this,'t4');{MyMar=setInterval(move,speed)}" >JSP</TD> <TD onClick= "setSource(this,'t5');{MyMar=setInterval(move,speed)}" >AJAX</TD> <TD onClick= "setSource(this,'t6');{MyMar=setInterval(move,speed)}" >DELPHI</TD> </TR> </TABLE> <br><br> <br><br> <br><br> <TABLE id= "aim" style= "border: 1px solid #666666 ; width: 227px; height: 300px;" > <TR> <TD id= 'aim1' valign= "top" ></TD> </TR> </TABLE> <br> <br> <br> <br> <TABLE style= "border: 1px solid #666666" cellspacing=1 bgcolor=#ff1111 cellpadding=4 border=0> <TR bgcolor=#ffffff> <TD onClick= "setSource(this,'t1');MyMar=setInterval(move,speed)" >ASP</TD> <TD onClick= "setSource(this,'t2');{MyMar=setInterval(move,speed)}" >PHP</TD> <TD onClick= "setSource(this,'t3');{MyMar=setInterval(move,speed)}" >ASP.NET</TD> <TD onClick= "setSource(this,'t4');{MyMar=setInterval(move,speed)}" >JSP</TD> <TD onClick= "setSource(this,'t5');{MyMar=setInterval(move,speed)}" >AJAX</TD> <TD onClick= "setSource(this,'t6');{MyMar=setInterval(move,speed)}" >DELPHI</TD> </TR> </TABLE> <div id= "t1" class = "hidden" >ASP</div> <div id= "t2" class = "hidden" >PHP</div> <div id= "t3" class = "hidden" >ASP.NET</div> <div id= "t4" class = "hidden" >JSP</div> <div id= "t5" class = "hidden" >AJAX</div> <div id= "t6" class = "hidden" >DELPHI</div> </BODY> |
希望本文所述对大家JavaScript程序设计有所帮助。
代码注释