zoukankan      html  css  js  c++  java
  • 关于tab栏切换的解析

    首先,我们要知道排他思想:

    我们的button就是几个按钮,上面这张图实质就是,当你点击btus[i]时,除了当前i的值得index之外全部被btn.[j].className=""清空,这时候就剩下btn[i]所点击的按钮有domao样式,像这样只取当前值,给予他样式,其他不管,称为排他思想。

    我们先看个实例:

    下面我们的思路就是这样:

    假如我们点击菜单栏1:下面就会有背景图片出现,而自己的背景也会变;

    window.onload=function (){}首先加载;

    var li=document.getElementsByTagName('button');
    var div1=document.getElementById('div1').getElementsByTagName('div');

    选定对象图片所在div和定义控制图片的按钮;

    for(var i=0;i<btns.length;i++)
    {
    btns[i].index = i; // 难点index是索引
    btns[i].onclick = function(){
    //让所有的 btn 类名清空
    //alert(this.index);
    for(var j=0;j<btns.length;j++)
    {
    btns[j].className = "";
    }

     我们要清空没有点击的其他按钮对应的div图片(当然在css里要先把所有图片藏起来噢)

    但是有一点,第一张图片要存在,不然打开页面第一个按钮下需要点击才可以出现,用户体验度就太差了。

    模型框架:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    <style>
    .box {
    400px;
    margin:100px auto;
    border:1px solid #ccc;
    }
    .bottom div{
    100%;
    height: 300px;
    display: none;
    }
    .purple {
    background-color: purple;
    }

    </style>
    <script>
    window.onload = function(){
    var btns = document.getElementsByTagName("button");
    var divs = document.getElementById("divs").getElementsByTagName("div");
    for(var i=0;i<btns.length;i++)
    {
    btns[i].index = i; // 难点
    btns[i].onclick = function(){
    //让所有的 btn 类名清空
    //alert(this.index);
    for(var j=0;j<btns.length;j++)
    {
    btns[j].className = "";
    }
    // 当前的那个按钮 的添加 类名
    this.className = "purple";
    //先隐藏下面所有的 div盒子
    for(var i=0;i<divs.length;i++)
    {
    divs[i].style.display = "none";
    }
    //留下中意的那个 跟点击的序号有关系的
    divs[this.index].style.display ="block";
    }
    }
    }
    </script>
    </head>
    <body>
    <div class="box">
    <div class="top">
    <button>第一个</button>
    <button>第二个</button>
    <button>第三个</button>
    <button>第四个</button>
    <button>第五个</button>
    </div>
    <div class="bottom" id="divs">
    <div style="display: block;">1盒子这里加图片</div>
    <div>2盒子这里加图片</div>
    <div>3盒子这里加图片</div>
    <div>4盒子这里加图片</div>
    <div>5盒子这里加图片</div>
    </div>
    </div>

    </body>
    </html>

  • 相关阅读:
    树链剖分总结
    主席树总结
    BZOJ1053:反素数(数学)
    CH3101 阶乘分解
    2018-2019 ACM-ICPC ECfinal I. Misunderstood … Missing
    洛谷P3201 [HNOI2009]梦幻布丁(链表 + 启发式合并)
    Codeforces Round #552 (Div. 3) 题解
    线段树合并 总结
    生成器
    Python中input()和raw_input()的区别
  • 原文地址:https://www.cnblogs.com/yangyangae86/p/5758563.html
Copyright © 2011-2022 走看看