zoukankan      html  css  js  c++  java
  • js选项卡

    HTML/CSS部分:

    我的结构是这么写的:

    每个选项的内容被嵌套在选项卡里。

    ul li div。

    ul是那个选项卡盒子,当然你还可以在上面弄个div什么的。

    li当然是选项卡的选项咯。

    div当然是每个选项显示出来的内容咯。根据语义化,这里的div视情况而定。比如选项内容是新闻列表时,这里可以就是li咯。

    或者直接使用 dl dt dl 。

    也可以使用不嵌套的方式。比如:

    ul li 这是选项卡。

    ul li 这是选项呀里面的内容。

    使用样式把选项卡和内容黏合在一起去。

    下面是每个选项内容嵌套在在相应选项卡下的HTML/CSS。

    <!--
    Author: XiaoWen
    Create a file: 2016-12-07 09:04:12
    Last modified: 2016-12-07 09:46:08
    Start to work:
    Finish the work:
    Other information:
    -->
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>选项卡</title>
      <style>
        ul,li{
          margin: 0;
          padding: 0;
          list-style: none;
        }
        ul{
          width: 300px;
          height: 150px;
          background: #ccc;
          overflow: hidden;
          position: relative;
        }
        ul li{
          width: 100px;
          height: 30px;
          line-height: 30px;
          float: left;
          text-align: center;
          background: #ddd;
        }
        ul div{
          position: absolute;
          width: 300px;
          left: 0;
          top: 30px;
          height: 120px;
          background: #eee;
          text-align: left;
        }
      </style>
    </head>
    <body>
    <script>
    //代码在下面...
    </script>
    </body>
    </html>
    HTML/CSS

    JS代码:

    之前的练习里有个方法,就是“显示要显示的,隐藏所有不显示的”,这个观念这里可以用到。比如把先通过for遍历全部隐藏掉,再把当前点击的div显示出来。

    然后……我写出来就是这样的。因为例子里面只有一个div,所以直接用div[0]写了。频繁获取了div[0],为了让代码看起来更简洁些,将其改为 div(Parent) 函数。

      var li=document.getElementsByTagName("li");
      for(var i=0;i<li.length;i++){ //隐藏其他li并添加点击事件
        //li[i].getElementsByTagName("div")[0].style="display:none";
        div(li[i]).style="display:none";
        li[i].onclick=function(){
          for(var j=0;j<li.length;j++){ //隐藏其他li
            //li[j].getElementsByTagName("div")[0].style="display:none";
            div(li[j]).style="display:none";
          }
          //显示点击的li
          //this.getElementsByTagName("div")[0].style="display:block";
          div(this).style="display:block";
        }
      }
      //默认要显示的选项(第一个li)
      //li[0].getElementsByTagName("div")[0].style="display:block";
      div(li[0]).style="display:block";
      //Parent父级元素
      function div(Parent){
        return Parent.getElementsByTagName("div")[0];
      }
    JS 方法一

    还想到其他方法……

    但等我先把其他几个小例子忽悠好了再来补充吧。

  • 相关阅读:
    Leetcode 811. Subdomain Visit Count
    Leetcode 70. Climbing Stairs
    Leetcode 509. Fibonacci Number
    Leetcode 771. Jewels and Stones
    Leetcode 217. Contains Duplicate
    MYSQL安装第三步报错
    .net 开发WEB程序
    JDK版本问题
    打开ECLIPSE 报failed to load the jni shared library
    ANSI_NULLS SQL语句
  • 原文地址:https://www.cnblogs.com/daysme/p/6140035.html
Copyright © 2011-2022 走看看