简单的javasrcipt选项卡

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta charset="gb2312">
    <link rel="stylesheet" href="main.css">
    <script type="text/javascript" src="main.js"></script>
    <title>Document</title>
</head>

<body>
    <div class="top">
        <ul class="clear" id="btn_one">
            <li class="light" data-color="red">one</li>
            <li data-color="blue">two</li>
            <li data-color="yellow">three</li>
        </ul>
    </div>
    <div class="main" id="amain">
        <div class="min main1">
            <ul>
                <li>这里有座山</li>
                <li>这里有座山</li>
                <li>这里有座山</li>
                <li>这里有座山</li>
                <li>这里有座山</li>
            </ul>
        </div>
        <div class="min main2" style="display: none">
            <ul>
                <li>窗外有风景</li>
                <li>窗外有风景</li>
                <li>窗外有风景</li>
                <li>窗外有风景</li>
                <li>窗外有风景</li>
            </ul>
        </div>
        <div class="min main3" style="display: none">
            <ul>
                <li>天上有太阳</li>
                <li>天上有太阳</li>
                <li>天上有太阳</li>
                <li>天上有太阳</li>
                <li>天上有太阳</li>
            </ul>
        </div>
    </div>
</body>

</html>

上面是html代码,很简单就是一个选项卡内容

* {
    margin: 0;
    padding: 0;
    font-size: 14px;
}
/*这里关键了,在float下一样可以获取width和height的值*/
.clear {
    zoom: 1;
}

.clear:after {
    content: ‘‘;
    display: block;
    clear: both;
}

.top ul {
    list-style-type: none;
}

.top ul li {
    width: 200px;
    height: 50px;
    line-height: 50px;
    text-align: center;
    float: left;
    background-color: powderblue;
    color: pink;
    border: 2px solid powderblue;
}

.top ul li.light {
    border: 2px solid red;
    color: red;
}

.main {
    width: 612px;
    height: 300px;
    position: relative;
    background: red;
}

.min {
    width: 612px;
    height: 300px;
    position: absolute;
    left: 0;
    top: 0;
}

.min ul li {
    height: 30px;
    line-height: 30px;
    font-size: 20px;
}

上面是CSS样式,很简单;用light样式来高亮li初始

// 通过ID  封装函数,如果id字符串等于string,返回getElementById(id)
// 否则返回id 本身;

function $(id) {
    return typeof id == "string" ? document.getElementById(id) : id;
}
window.onload = function() {
    //获取鼠标滑动onmouseover或者点击onclick的标签li和要切换的元素;
    //定义函数titles(li的集合)divs(div的集合);
    var titles = $("btn_one").getElementsByTagName("li");
    var divs = $("amain").getElementsByTagName("div");

    //当titles和divs的长度不一样就不执行;
    if (titles.length != divs.length) {
        return;
    }
    for (var i = 0; i < titles.length; i++) {
        //为btn_on下的每个li添加索引;
        titles[i].id = i;
        titles[i].onmouseover = function() {
            //getAttribute可以取得自定义标签data-color的值;
            var btnstyle = this.getAttribute("data-color");
            //清楚所有li和div上的样式
            clearBtn();
            //鼠标滑过哪个li就高亮哪个li;
            this.className = "light";
            //data-color当下的值给当前次数的li的内容
            this.style.color = btnstyle;
            //把data-color当下的值给当前次数li的边框
            this.style.border = ‘2px solid ‘ + btnstyle;
            //设置当前li所对应的div为显示状态
            divs[this.id].style.display = "block";

        }
    }

    function clearBtn() {
        for (var i = 0; i < titles.length; i++) {
            //li的样式为空
            titles[i].className = "";
            //li的内容为白色
            titles[i].style.color = "";
            //li的边框为空
            titles[i].style.border = "";
            //div为隐藏状态
            divs[i].style.display = "none";
        }
    }
}

就是通过索引来连接上下两个div,直接可以通过titles和divs两个函数进行响应

时间: 2024-10-14 16:12:57

简单的javasrcipt选项卡的相关文章

编程练习--简单实用的选项卡切换效果

有网友私信我,说我前几篇写编程练习的例子让他们感觉我写代码的方式和他们不一样,让他们很受启发,希望我多写一些这样的例子.他们帮我总结了一下,主要表现在以下三个方面: 1. 代码外观整洁清爽. 2.喜欢用对象方式编写. 3.喜欢用原生javascript. 我非常认同上面三点,事实上我也是坚持这么做的.第1点自不必说,爱美之心,人皆有之.我想没有一个人愿意看排的凌乱不甚的代码的.第2点呢,我个人认为好处就很多了,最直接的好处就是可以更好的组织代码,使各功能模块之间即独立又相互协调,也方便扩展和维护

Jquery 简单的Tab选项卡特效

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jquery实现简单的tab选项卡

选项卡是大家平时在工作中经常用到的一个效果,下面我给大家一个比较简单的选项卡demo. html: <ul class="tab"> <li>11</li> <li class="cur">22</li> <li>33</li> </ul> <div>11</div> <div class="on">22</d

javascript面向对象系列4——实例篇(最简单的面向对象选项卡)

[功能说明] 点击三个按钮分别显示对应的选项卡 [html代码说明] <div class="box" id="box"> <ul class="list"> <li class="in_active">第一张选项卡</li> <li class="in">第二张选项卡</li> <li class="in"&

超简单的网页选项卡---jQuery

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>网页选项卡</title> <script src="jquery-1.4.2.js"></script> <script type="text/javascript"> $(funct

jquery简单实现tab选项卡效果

html: <ul class="tab"> <li>最新</li> <li class="cur">热门</li> <li>新闻</li> </ul> <div>11</div> <div class="on">22</div> <div>33</div> css: div{ma

jquery简单实现tab选项卡效果--转

html: <ul class="tab"> <li>最新</li> <li class="cur">热门</li> <li>新闻</li> </ul> <div>11</div> <div class="on">22</div> <div>33</div> js: $(docum

简单的HTML选项卡效果

<style type="text/css">.box{width: 200px;height: 30px;background: #0000FF;color: #FFFFFF;margin: 0 auto;line-height: 30px;text-align: center;}body{text-align: center;}#ul{display: inline-block;background: #CCCCCC;overflow: visible;position

(新手向)基于Bootstrap的简单轮播图的手机实现

个人电脑里存了不少适合手机欣赏的图片,但是放手机里看是件很占据资源的事.鉴于家里有一台电脑经常开着,正好用来做家庭局域网共享,于是笔者就设想通过一种比较简单环保的思路.通过手机访问电脑内的图片. 首先是本地站点搭建:win+R输入mmc打开控制台,文件-添加/删除管理单元,Internet信息服务.添加确定,右侧基本信息,新建网站-把路径改了.设定一个端口号,手机浏览器就可以输入  电脑局域网ip:端口号 就可以连上去了. 接下来问题来了,一个个点击查看然后关闭图片是一件更不环保的事.何不做一个