<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>仿taobao效果 -- 小秦修改版</title>
<style type="text/css">
*{ margin:0;padding:0;}
body{ font:normal 12px Verdana, Arial, Helvetica, sans-serif; text-align:center;}
#warpper{ position:absolute; left:100px; top:100px;}
h5{ float:left;}
a{ text-decoration:underline; cursor:pointer; font-weight:bold;}
dl{ height:18px; line-height:18px; background:#f7f7f7; padding:0 10px;}
dt,.normal{ float:left; padding:0 10px; border-right:1px solid #ccc; text-decoration:none; width:auto; cursor:pointer;}
dt.over{ position:relative;border:1px solid #86e5f0; padding:0 10px 15px 10px; border-bottom:1px solid #caf1f1; margin:-1px 0 0 -1px; z-index:1000; color:#ff6026; text-decoration:underline; background:#caf1f1; height:22px; }
li{ float:left; list-style-type:none; margin:5px 10px; width:120px;}
dl dd{ position:absolute; width:500px; left:0;top:37px!important; border:1px solid #86e5f0; background:#caf1f1; filter:progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=120, color=#cccccc); padding:10px 0;}
.block{ display:block;}
.none{ display:none;}
</style>
<script language="javascript">
function XMenu(o){
this.$ = function(o){ return document.getElementById(o);}
this.$$ = function(o, str){ return o.getElementsByTagName(str);}
this.obj = o;
this.bind();
}
XMenu.prototype = {
bind : function(){
var xxx = this.$(this.obj); //得到传对的对象。在这里,我没有做容错处理。没有判断这个对象存在不存在,如果需要请自己判断。
var xdt = this.$$(xxx, 'dt');//得到这个对象下的所有的dt
var xdd = this.$$(xxx, 'dd');//得到这个对象下的所有的dd
var xdtl = xdt.length;//取得有几个dt
xxx['obj'] = xdt[0];//给传的对象添加一个属性obj,值为 第一个 dd
for(var i=0; i<xdtl; i++){//循环 该对象下的所有的 dd,并为它添加onmouseover事件。
xdt[i]['dd'] = xdd[i];//给当前对象添加一个属性dd,值为,与它相对应的dd对象,它的作用是在移动到当前对象的时候给与它相对应的dd设置样式用的。
xdt[i]['div'] = xxx;//给当前对象添加一个属性div,值为,调用XMenu时,所传入的参数所对应的对象。
xdt[i].onmouseover = function(){
this['div']['obj'].className = 'normal';
this['div']['obj']['dd'].className = 'none';
this.className = 'over';
this['dd'].className = 'block';
this['div']['obj'] = this;
}
}
xxx.onmouseout = function(){
var d = this;//用来保存当前的xxx对象
this.hide = setTimeout(function(){
d['obj'].className = 'normal';
d['obj']['dd'].className = 'none';
d = null;
},10); //鼠标移出后几秒隐藏。在这里设置时间[秒数*1000]
}
xxx.onmouseover = function(){
if(this.hide){
clearTimeout(this.hide);
}
}
}
}
window.onload = function (){//在文档onload事件绑定事件处理函数。
new XMenu('warpper'); //传入id。该对象下的所有dt将会被绑定onmouseover事件。
}
</script>
</head>
<body>
<dl id="warpper">
<h5>拼音检索:</h5>
<dt>a</dt>
<dd class="none">
<ul>
<li><a herf="#">Adidas</a></li>
<li><a herf="#">AEE/爱意</a></li>
<li><a herf="#">AF</a></li>
<li><a herf="#">AF棒球帽</a></li>
<li><a herf="#">Agatha</a></li>
<li><a herf="#">Albion/奥尔滨</a></li>
<li><a herf="#">AMD</a></li>
<li><a herf="#">Andox</a></li>
<li><a herf="#">Artini</a></li>
<li><a herf="#" onclick="window.open('http://www.aspprogram.cn');">asp编程网</a></li>
</ul>
</dd>
<dt>b</dt>
<dd class="none">
<ul>
<li><a herf="#">b_1</a></li>
<li><a herf="#">b_2</a></li>
</ul>
</dd>
<dt>c[ch]</dt>
<dd class="none">
<ul>
<li><a herf="#">c_1</a></li>
<li><a herf="#">c_2</a></li>
<li><a herf="#">c_3</a></li>
</ul>
</dd>
<dt>d</dt>
<dd class="none">
<ul>
<li><a herf="#">d_1</a></li>
<li><a herf="#">d_2</a></li>
<li><a herf="#">d_3</a></li>
<li><a herf="#">d_4</a></li>
</ul>
</dd>
<dt>e</dt>
<dd class="none">
<ul>
<li><a herf="#">e_1</a></li>
<li><a herf="#">e_2</a></li>
<li><a herf="#">e_3</a></li>
<li><a herf="#">e_4</a></li>
<li><a herf="#">e_5</a></li>
</ul>
</dd>
<dt>f</dt>
<dd class="none">
<ul>
<li><a herf="#">f_1</a></li>
<li><a herf="#">f_2</a></li>
<li><a herf="#">f_3</a></li>
<li><a herf="#">f_4</a></li>
<li><a herf="#">f_5</a></li>
<li><a herf="#">f_6</a></li>
<li><a herf="#">f_7</a></li>
<li><a herf="#">f_8</a></li>
<li><a herf="#">f_9</a></li>
<li><a herf="#">f_10</a></li>
<li><a herf="#">f_11</a></li>
<li><a herf="#">f_12</a></li>
<li><a herf="#">f_13</a></li>
<li><a herf="#">f_14</a></li>
</ul>
</dd>
</dl>
</body>
</html>