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

一个轻巧又好用的脚本,修改起来很简单,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 全部选择 提示:你可先修改部分代码,再按运行]

 

脚本部分:

ContractedBlock.gif ExpandedBlockStart.gif 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标签里了):

 

ContractedBlock.gif ExpandedBlockStart.gif 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值