[读码时间] 简易选项卡

说明:代码来自网络。注释为笔者学习时添加。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>简易选项卡</title>
    <style>
        body,ul,li{ /*内外边距全为0,消除不同浏览器上的显示区别*/
            margin:0;
            padding:0;
        }
        body{
            font:12px/1.5 Tahoma;/*字号行高字体*/
        }
        #outer{
            width:450px;
            margin:10px auto;/*左右置中*/
        }
        #tab{
            overflow:hidden;
            zoom:1;
            background:#000;/*黑色*/
            border:1px solid #000;
        }
        #tab li{
            float:left;/*左浮动,水平排列*/
            color:#fff;/*白色*/
            height:30px;
            cursor:pointer;/*手形*/
            line-height:30px;/*行高*/
            list-style-type:none;/*去除样式*/
            padding:0 20px;
        }
        #tab li.current{
            color:#000;/*黑色*/
            background:#ccc;/*背景灰白色*/
        }
        #content{
            border:1px solid #000;/*黑色*/
            border-top-width:0;
        }
        #content ul{
            line-height:25px;/*行高*/
            display:none;/*默认不显示*/
            margin:0 30px;
            padding:10px 0;
        }
    </style>
    <script>
        window.onload = function () {
            var oLi = document.getElementById("tab").getElementsByTagName("li");//链式调用2个方法,获取tab标签中的所有li元素,返回一个集合
            var oUl = document.getElementById("content").getElementsByTagName("ul");//链式调用,获取content标签中的所有ul元素,返回一个集合
            for (var i = 0; i < oLi.length; i++) {
                oLi[i].index = i;//给每个li元素对象添加index属性
                oLi[i].onmouseover = function () {//给每个li元素注册mouseover事件
                    for (var n = 0; n < oLi.length; n++) oLi[n].className = ""; //先清除所有li元素上的类,如果存在的话
                    this.className = "current";//给当前被点击的li元素添加类
                    for (var n = 0; n < oUl.length; n++) oUl[n].style.display = "none";//隐藏所有ul内容,
                    oUl[this.index].style.display = "block";//显示与标签对应的内容
                }
            }
        }
    </script>
</head>
<body>
    <!--一个div包裹一个ul列表做为标签名和一个子div,子div中包裹3个ul列表-->
    <div id="outer">
        <ul id="tab"> <!--标签名-->
            <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>
</body>
</html>
View Code
原文地址:https://www.cnblogs.com/sx00xs/p/6435958.html