• JS实现选项卡切换效果


     1、在网页制作过程中,我们经常会用到选项卡切换效果,它能够让我们的网页在交互和布局上都能得到提升

    原理:在布局好选项卡的HTML结构后,我们可以看的出来,选项卡实际上是三个选项卡标头和三个对应的版块,如下图,是三个标头分别是教育,娱乐,汽车,当我们单击教育时,教育那个选项卡标头的背景会变成激活状白色,下面的的三个DIV形成的版块只会显示第一个教育的内容。当我们单击娱乐时,娱乐那个选项卡标头的背景会变成激活状白色,下面的的三个DIV形成的版块只会显示第二个娱乐的内容。当我们单击汽车时,汽车那个选项卡标头的背景会变成激活状白色,下面的的三个DIV形成的版块只会显示第三个汽车的内容。

     3、 具体的实现是通过getElementsByTagName方法,先对选项卡三个标头H3进行捕获,产生一个数组,我们利用for循环分别对每个标头选项H3添加一个index属性作为它的序号同时注册单击事件,当某个H3被单击时,我们先把所有的H3都变成原始状态,没active类,然后再把被单击的H3要添加一个active类使其变成白色,此时,我们还要知道被单击H3的序号,这样我们可以去,设定与之序号相同的DIV显示出来,而其它的DIV刚隐藏起来。

    <!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-Type" content="text/html; charset=gb2312" />
    <title>选项卡</title>
    
    <style type="text/css">
    
    #tab{300px;border:3px solid #CCC;}
    #tab .active{background-color:#FFF}
    #tab h3{
    margin:0px;
    padding:0px;
    font-size:14px;
    float:left;
    background-color:#CCC;
    60px;
    height:24px;
    line-height:24px;
    text-align:center;
    }
    #tab div{
    clear:both;
    height:100px;
    font-size:14px;
    padding:20px 0px 0px 20px;
    display:none;
    }
    </style>
    <script>
    window.onload=function(){
    var oTab=document.getElementById("tab");
    var aH3=oTab.getElementsByTagName("h3");
    var aDiv=oTab.getElementsByTagName("div");
    for(var i=0;i<aH3.length;i++){ 
       aH3[i].index=i;
       aH3[i].onclick=function(){
       for(var i=0;i<aH3.length;i++){
       aH3[i].className="";
       aDiv[i].style.display="none";
       }
       this.className="active";
       aDiv[this.index].style.display="block";
       }
      }
     }
    
    </script>
    
    
    </head>
    
    <body>
    
    <div id="tab">
      <h3 class="active">教育</h3>
      <h3>娱乐</h3>
      <h3>汽车</h3>
      
      <div style="display:block">教育的内容</div>
      <div>娱乐的内容</div>
      <div>汽车的内容</div>
    </body>
    </html>

     

  • 相关阅读:
    [leetcode]存在重复
    [leetcode]旋转数组
    git使用方法(持续更新)
    [LeetCode]从排序数组中删除重复项
    Communications link failure--分析之(JDBC的多种超时情况)
    云主机挂载磁盘
    hadoop对于压缩文件的支持
    linux 转移mysql文件操作流程
    MindManager2018 修改过期时间 配置文件路径
    Innodb 中 RR 隔离级别能否防止幻读?
  • 原文地址:https://www.cnblogs.com/peifei045/p/5771987.html
Copyright © 2020-2023  润新知