本文为博主原创,更多好文章请点击这里
首先我们可以利用javascript脚本,调用对应列表的id来实现动态效果的展示,但是,如果遇到像淘宝一样的网站,他的菜单比较多的情况的时候,我们通过动态绑定的方式就比较麻烦了。
所以,今天给大家介绍一个可以动态设置方式
首先我们先来准备下啦列表
- 在Html中建立对应的列表元素,如下
<ul>
<li > <a href="#"> 首页</a>
<dl style="display: none" id="content-0">
<dt><a href="#">行业新闻</a></dt>
<dt><a href="#">公司新闻</a></dt>
<dt><a href="#">国内动态</a></dt>
</dl>
</li>
<li> <a href="#"> 企业新闻</a>
<dl style="display: none" id="content-1">
<dt><a href="#">行业新闻</a></dt>
<dt><a href="#">公司新闻</a></dt>
<dt><a href="#">国内动态</a></dt>
</dl>
</li>
</ul>
- 同时你要设置你的
<li>
标签下的<dl>
标签的display设置成none(就是把dl整个框架隐藏起来)
接着我们可以来写js代码了
写代码之前,我们先来了解下实现原理
- 通过js获取
<li>
标签的一个集合 - 然后动态给每个
<li>
标签添加一个index(下标) - 再次循环便利数组,将每一个
<dl>
标签的css属性置空(如果没有用到css可以忽略)或者将原文的style标签下的display再次重新设置成none - 找到正在操作的
<li>
标签节点,修改他的css属性或者display属性
- 通过js获取
下面我们来看看代码的实现
<script type="text/javascript">
window.onload = function () {
// 1. 获取所有选项卡LI标签
var olis = document.getElementsByTagName("li");
// 2. 循环便利所有的标签
for(var i=0; i<olis.length; i++){
// 3. 给每个li标签添加一个index
olis[i].index = i;
// 4. 动态绑定
olis[i].onmouseover = function () {
// 5. 再次循环遍历 或者 找到要操作的层或列表
for(var j=0; j<olis.length; j++){
// olis[j].getElementsByTagName("dl")[0];
// 6. 清除和隐藏所有元素的className和div/dl层
// odl.style.display = "block";
document.getElementById("content-"+j).style.display = "none";
}
// 7. 显示选项卡对应的DIV
document.getElementById("content-"+this.index).style.display="block";
}
}
}
</script>
本文为博主原创,更多好文章请点击这里