1KB的横向滑动菜单JS脚本

it2022-05-05  120

一个轻巧又好用的脚本,修改起来很简单,li标签里面不加图片加文字也可以。自己重新弄了个demo测试了一下,效果还不错。

发觉其实JS的一些小巧的动态脚本也是可以给做网页设计者带来灵感的,一些平面化的东西做太多思维容易被局限住,有时有点动感,给你的用户一点“反应”,也是件不错的事。当然一切还是要从实际需求出发,单纯为了视觉效果不是本人迷恋和追求的东西。

 

<!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=gb2312" /> <title>1KB的横向滑动菜单JS脚本</title> <style type="text/css"> ul{margin:20px;padding:0;} .sm {list-style:none; width:350px; height:32px; display:block; overflow:hidden} .sm li {float:left; display:inline; overflow:hidden} </style> </head> <body οnlοad="slideMenu.build('sm',140,10,10,1)"> <ul id="sm" class="sm"> <li><img src="http://www.cargoo.net/p/x/images/1.gif" alt="" /></li> <li><img src="http://www.cargoo.net/p/x/images/2.gif" alt="" /></li> <li><img src="http://www.cargoo.net/p/x/images/3.gif" alt="" /></li> <li><img src="http://www.cargoo.net/p/x/images/4.gif" alt="" /></li> </ul> </body> </html>   [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

 

脚本部分:

Code var slideMenu=function(){     var sp,st,t,m,sa,l,w,sw,ot;     return{         build:function(sm,sw,mt,s,sl,h){             sp=s; st=sw; t=mt;             m=document.getElementById(sm);             sa=m.getElementsByTagName('li');             l=sa.length; w=m.offsetWidth; sw=w/l;            ot=Math.floor((w-st)/(l-1)); var i=0;            for(i;i<l;i++){s=sa[i]; s.style.width=sw+'px'this.timer(s)}             if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[sl-1])},t)}         },         timer:function(s){s.onmouseover=function(){clearInterval(m.timer);m.timer=setInterval(function(){slideMenu.slide(s)},t)}},         slide:function(s){             var cw=parseInt(s.style.width,'10');             if(cw<st){                 var owt=0var i=0;                 for(i;i<l;i++){                     if(sa[i]!=s){                         var o,ow; var oi=0; o=sa[i]; ow=parseInt(o.style.width,'10');                         if(ow>ot){oi=Math.floor((ow-ot)/sp); oi=(oi>0)?oi:1; o.style.width=(ow-oi)+'px'}                        owt=owt+(ow-oi)}}                 s.style.width=(w-owt)+'px';             }else{clearInterval(m.timer)}         }     }; }();

 

html代码部分(CSS很简单,我合并在head标签里了):

 

Code <!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=gb2312" /><title>Horizontal Slide Menu</title><script type="text/javascript" src="http://www.cargoo.net/p/x/script/slidemenu.js"></script><style type="text/css"> ul{margin:20px;padding:0;} .sm {list-style:none; width:350px; height:32px; display:block; overflow:hidden} .sm li {float:left; display:inline; overflow:hidden}    </style></head><body onload="slideMenu.build('sm',140,10,10,1)"><ul id="sm" class="sm">     <li><img src="http://www.cargoo.net/p/x/images/1.gif" alt="" /></li>     <li><img src="http://www.cargoo.net/p/x/images/2.gif" alt="" /></li>     <li><img src="http://www.cargoo.net/p/x/images/3.gif" alt="" /></li>     <li><img src="http://www.cargoo.net/p/x/images/4.gif" alt="" /></li></ul></body></html>

 

原文地址:http://www.leigeber.com/2008/05/horizontal-javascript-accordion-menu/

原文demo下载

转载于:https://www.cnblogs.com/color-fever/archive/2008/10/23/1318069.html

相关资源:各显卡算力对照表!

最新回复(0)