js实现选项卡功能

来源:互联网 发布:js跨域请求 编辑:程序博客网 时间:2024/05/17 04:07

标题是用无序列表,内容放在div里,内容div里面使用无序列表;

实现逻辑:

1.通过dom操作找到标题里的li;需要给他添加onmouseover事件;

2.给触发了onmouseover事件的li设置效果

3.通过dom操作找到内容里的ul,当触发onmouseover 事件的时候给ul添加display属性;

注意事项:需要使用this关键字,在添加onmouse事件时,需要给标题里的li设置他的index,这样做就可以把内容的ul与标题里的li关联起来;

this 表示使用某个函数的对象

index则返回列表中的索引位置;

代码如下:

var oLi = document.getElementById("nav").getElementsByTagName("li");var oUl = document.getElementById("content").getElementsByTagName("ul");for (var i=0;i<oLi.length;i++) {oLi[i].index = i;/*index 返回列表中选项的索引位置本例通过循环,把每个nav中的li的索引记录下来,用来关联content中的li.通过控制nav,来显示相应的内容*/oLi[i].onmouseover = function () {for(var j=0;j<oLi.length;j++){oLi[j].className="";this.className="current";}for(var j=0;j<oUl.length;j++){oUl[j].style.display="none";oUl[this.index].style.display="block";/*记录下来的索引值在这个地方使用,this指添加onmouse事件的oLi[i]this.index 就是选中的nav中的li的索引*/}}}
css部分需要注意的是不同的选项会显示不一样的内容,涉及到高度的问题;通过overflow属性,值设为hidden;浏览器就会自动根据不同的宽度显示;

代码如下:

body,ul,li {margin: 0;padding: 0;}#outer {width: 450px;margin: 0 auto;}#nav {background: #000;overflow: hidden;border: 1px solid #000;zoom: 1;}#nav li {color: #ccc;float: left;padding: 0 20px;list-style-type: none;height: 30px;line-height: 30px;}#nav li.current {background: #ccc;color: #000;}#content{border: 1px solid #000;border-top-width: 0;}#content ul{margin: 0 30px;padding: 10px 0;display: none;line-height: 25px;}

html部分就是无序列表的使用

代码:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><link rel="stylesheet" href="s.css"></head><body><div id="outer"><ul id="nav"><li class="current">第一课</li><li>第二课</li><li>第三课</li></ul><div id="content"><ul style="display:block;"><li>网页特效原理分析</li><li>响应用户操作</li><li>提示框效果</li><li>事件驱动</li><li>元素属性操作</li><li>动手编写第一个js特效</li><li>引入函数</li><li>网页换肤效果</li><li>展开/收缩播放列表效果</li></ul><ul><li>改变网页背景颜色</li><li>函数传参</li><li>高重用性函数的编写</li><li>126邮箱全选效果</li><li>循环及遍历操作</li><li>调试器的简单使用</li><li>典型循环的构成</li><li>for循环配合if判断</li><li>className的使用</li><li>innerHTML的使用</li><li>戛纳印象效果</li><li>数组</li><li>字符串连接</li></ul><ul><li>JavaScript组成:ECMAScript、DOM、BOM,JavaScript兼容性来源</li><li>JavaScript出现的位置、优缺点</li><li>变量、类型、typeof、数据类型转换、变量作用域</li><li>闭包:什么是闭包、简单应用、闭包缺点</li><li>运算符:算术、赋值、关系、逻辑、其他运算符</li><li>程序流程控制:判断、循环、跳出</li><li>命名规范:命名规范及必要性、匈牙利命名法</li><li>函数详解:函数构成、调用、事件、传参数、可变参、返回值</li><li>定时器的使用:setInterval、setTimeout</li><li>定时器应用:站长站导航效果</li><li>定时器应用:自动播放的选项卡</li><li>定时器应用:数码时钟</li><li>程序调试方法</li></ul></div></div><script src="s.js"></script></body></html>


0 0
原创粉丝点击