制作更方便的下拉菜单

由于JavaScript和VBScript脚本语言及CSS的日益流行,Interent上各大网站纷纷采用这些技术,使自己的站点变得更加活跃,更具交互性和趣味性。尤其是微软主页上的那种下拉菜单,曾经让我感到不可思议,简单的网页竟能呈现出类似应用程序般的界面,让我羡慕不已。经过研究,我发现此类菜单的编制并不复杂,下面,我就把我编制的下拉菜单介绍给大家。

  首先,我们先要定义几个类(仔细看哟,这里可是影响外观效果的关键部位):

 

< TEXTAREA  style ="WIDTH: 447px; HEIGHT: 186px"  rows =12  cols =60 >
< STYLE >
  .over
{ background-color : #cccccc ;
  //这里定义菜单项鼠标OVER时的效果;
  border-top
: #ffffff 1px solid ;  //上边的属性
  border-bottom
: #000000 1px solid ; //下边的属性
  border-left
: #ffffff 1px solid ;  //左边的属性
  border-right
: #000000 1px solid }  //右边的属性
  .out
{ background-color : #cccccc ;
  //这里定义菜单项一般状态;
  border-top
: #cccccc 1px solid ;
  border-bottom
: #cccccc 1px solid ;
  border-left
: #cccccc 1px solid ;
  border-right
: #cccccc 1px solid }
  .down
{ background-color : #cccccc ;
  //这里定义菜单项鼠标左键点击时的效果;
  border-top
: #000000 1px solid ;
  border-bottom
: #ffffff 1px solid ;
  border-left
: #000000 1px solid ;
  border-right
: #ffffff 1px solid }
  .subover
{ background-color : #003090 ; color : #ffffff }
  //这里定义子菜单鼠标OVER时的效果;
  .subout
{ background-color : #cccccc }
  //这里定义子菜单一般状态;
  
</ STYLE >
  //请把以上代码加到
< HEAD ></ HEAD > 里面。

  定义完CSS风格,下面我们把它和HTML合并到一起:
  
< table  width ="100%"  border ="0"  cellspacing ="0"  cellpadding ="0"  align ="center"  class ="over"  height ="22" >< tr >
  
< td  width ="9%"  height ="19" >
  
< table  id ="bar0"  //定义“文件”菜单项的ID;
  onmousedown
="mydown(" bar0");"
  //定义“文件”菜单项的鼠标事件;
  onMouseOver
="myover(" bar0");"
  onMouseOut
="myout(" bar0");"
  onclick
="myclick(" bar0");"
  class
="out"  //定义“文件”菜单项的类;
  width
="100%"  border ="0"  cellspacing ="0"  cellpadding ="0"  bgcolor ="#cccccc" >< tr >< td  colspan ="2"  height ="19" >< div  align ="center" > 文件 </ div ></ td ></ tr ></ table >
  //“文件”菜单项定义结束;
  
</ td >
  
< td  width ="9%"  height ="19" > //定义第二个菜单项;
  
< table  id ="bar1"  onmousedown ="mydown(" bar1");" class ="out"
  width
="100%"  border ="0"  cellspacing ="0"
  cellpadding
="0"  bgcolor ="#cccccc"
  onMouseOver
="myover(" bar1");"
  onMouseOut
="myout(" bar1");"
  onclick
="myclick(" bar1");" >
  
< tr >< td  colspan ="2"  height ="19" >< div  align ="center" > 编辑 </ div ></ td ></ tr >
  
</ table >  //第二个菜单项定义结束;
  
</ td >  //定义第N个菜单项,方法同上;
  
</ tr >
  
</ table >

  下面是子菜单的定义;
  
< div  id ="menu0"  //定义子菜单1的位置并隐藏;
  style
="POSITION: absolute;LEFT: 6px; TOP: 22px; Z-INDEX: 12; 
  width: 100px; height: 50px;display:none"
>
  
< table  class ="over"  width ="100%"  border ="0" >< tr >
  
< td  id ="00"  onmouseover ="myover(" 00");"
  onmouseout
="myout(" 00");"
  onclick
="myclick(" 想打开的文件0.htm");" >  菜单项00 </ td >
  
</ tr >< tr >
  
< td  id ="01"  onmouseover ="myover(" 01");"
  onmouseout
="myout(" 01");"
  onclick
="myclick(" 想打开的文件1.htm');" >  菜单项01 </ td >
  
</ tr ></ table >
  
</ div >
  
< div  id ="menu1"  //定义子菜单2的位置并隐藏;
  style
="POSITION: absolute;LEFT: 66px; TOP: 22px; Z-INDEX: 12;
  width: 100px; height: 50px;display:none"
>  
  
< table  class ="over"  width ="100%"  border ="0" >< tr >
  
< td  id ="10"  onmouseover ="myover(" 10");"
  onmouseout
="myout(" 10");"
  onclick
="myclick(" 想打开的文件2.htm");" >  菜单项10 </ td >
  
</ tr >< tr >
  
< td  id ="11"  onmouseover ="myover(" 11");"
  onmouseout
="myout(" 11");"
  onclick
="myclick(" 想打开的文件3.htm");" >  菜单项11 </ td >
  
</ tr >
  
</ table >
  
</ div >

  哇!HTML代码也编写完了,把它们添加到你的
< BODY ></ BODY > 中吧,现在,我们将进行代码的核心部分:
  “脚本”的编制!
  
< SCRIPT >
  
function  myover(tt)
  
// 菜单项及子菜单的鼠标OVER例程;
  { cc = document.all(tt);
  
if ( ! tt.indexOf( " bar " ))
  { cc.className
= " over " ;
  }
  
else {cc.className = " subover " ;}
  event.srcElement.style.cursor 
=   " default " ;
  }
  
function  myout(tt){
  
// 菜单项及子菜单的鼠标OUT例程;
  cc = document.all(tt);
  
if (tt.indexOf( " bar " ) == " 0 " )
  { cc.className
= " out " ;
  }
  
else {cc.className = " subout " ;}
  event.srcElement.style.cursor 
=   " auto " ;
  }
  
function  mydown(tt){  // 菜单项的鼠标DOWN例程;
  cc = document.all(tt);
  cc.className
= " down " ;
  }
  
function  myclick(tt) 
  
// 菜单项及子菜单的鼠标CLICK例程;
  {  if (tt.indexOf( " bar " ) == " 0 " )
  { hideall();
  
var  src = document.all(tt);
  
if (src.id == " bar0 " ) menu0.style.display = "   " ;
  
else   if (src.id == " bar1 " )
  menu1.style.display
= "" ;
  
else   if (src.id == " bar2 " )
  menu2.style.display
= "   " ;
  
else   if (src.id == " bar3 " )
  menu3.style.display
= "   " ;
  }
  
else {location.href = tt;}
  window.event.cancelBubble
= true ;
  
// 终结本事件冒泡
  }
  
function  hideall()
  {
  menu0.style.display
= " none " ;
  menu1.style.display
= " none " ;
  menu2.style.display
= " none " ;
  menu3.style.display
= " none " ;
  }
  
function  renclick(){
  hideall(); 
// 隐藏所有菜单
  }
  document.onmouseup
= renclick;
  
</ SCRIPT >
  把上面的脚本添加到你的页面的
< HEAD ></ HEAD > 中。


</ TEXTAREA >

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值