• 技术文章 >web前端 >js教程

    js/jQuery简单实现选项卡功能

    高洛峰高洛峰2017-02-04 14:38:28原创477
    第一种方法是用原生的js代码如下:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>简单选项卡</title>
        <style type="text/css">
        body,ul,li{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 type="text/javascript">
          window.onload = function ()
          {
              var oLi = document.getElementById("tab").getElementsByTagName("li");
              var oUl = document.getElementById("content").getElementsByTagName("ul");
              for(var i = 0; i < oLi.length; i++)
              {
                  oLi[i].index = i;
                  oLi[i].onmouseover = function (){
                      for(var n = 0;n < oLi.length;n++)
                      {
                          oLi[n].className = "";
                          this.className = "current";
                      }
                          for(var n = 0;n <oUl.length;n++)
                          {
                              oUl[n].style.display = "none";
                              oUl[this.index].style.display="block";
                          }
                  }
              }
          }
        </script>
        </head>
    <body>
    <div id="outer">
    <ul id="tab">
        <li class="current">科技</li>
        <li>旅游</li>
        <li>娱乐</li>
    </ul>
    <div id="content">
        <ul style="display:block;">
            <li>宏碁R7双转轴变形本评测:触摸板设计过于另类(图)</li>
            <li> 超薄加防水 索尼Xperia Tablet Z平板电脑评测</li>
            <li>诺基亚Lumia 925评测 最好的WP8智能手机</li>
            <li> 联想IdeaPad S405评测 性能主流续航待提升</li>
            <li>小辣椒M2智能手机评测: 再不换壳我们就该老了</li>
            <li>联想K900内部构造 看国产神器多少国产货(组图)</li>
            <li>联想K900内部构造 看国产神器多少国产货(组图)</li>
            <li>网页换肤效果</li>
            <li>联想K900内部构造 看国产神器多少国产货(组图)</li>
        </ul>
        <ul>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
        </ul>
        <ul>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
        </ul>
    </div>
    </div>
    </body>
    </html>

    第二种方法是用jQuery实现,代码比第一种简洁

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>简单选项卡</title>
        <style type="text/css">
        body,ul,li{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 type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
        <script type="text/javascript">
    
        $(function(){
                var timeid;
              $("#tab").find("li").each(function(index){
                  var sLi=$(this);
                  sLi.mouseenter(function(){
                      timeid= setTimeout(function(){
                          sLi.addClass("current").siblings().removeClass("current");
                          sLi.parent().next().find("ul:eq(" + index +")").show().siblings().hide() ;
                     },300);
                  }).mouseleave(function(){
                         clearTimeout(timeid);
                          })
              })
            })
        </script>
        </head>
    <body>
    <div id="outer">
    <ul id="tab">
        <li class="current">科技</li>
        <li>旅游</li>
        <li>娱乐</li>
    </ul>
    <div id="content">
        <ul style="display:block;">
            <li>宏碁R7双转轴变形本评测:触摸板设计过于另类(图)</li>
            <li> 超薄加防水 索尼Xperia Tablet Z平板电脑评测</li>
            <li>诺基亚Lumia 925评测 最好的WP8智能手机</li>
            <li> 联想IdeaPad S405评测 性能主流续航待提升</li>
            <li>小辣椒M2智能手机评测: 再不换壳我们就该老了</li>
            <li>联想K900内部构造 看国产神器多少国产货(组图)</li>
            <li>联想K900内部构造 看国产神器多少国产货(组图)</li>
            <li>网页换肤效果</li>
            <li>联想K900内部构造 看国产神器多少国产货(组图)</li>
        </ul>
        <ul>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
            <li>爱上西雅图,美国全景游精选推荐 </li>
        </ul>
        <ul>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
            <li>李安宣布辞拍美剧《暴君》:需要休息</li>
        </ul>
    </div>
    </div>
    </body>
    </html>

    第一种方法用原生的js是借鉴与别人的方法,第二种是我在第一个方法的基础上编写的。。。

    更多js/jQuery简单实现选项卡功能相关文章请关注PHP中文网!
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:jQuery 选项卡
    上一篇:js选项卡的实现方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 浅析Angular中的Change Detection机制• 实战学习:聊聊Node.js怎么操作数据库• 一文聊聊node中的path模块• 浅析Angular变更检测中的订阅异步事件• 聊聊如何选择一个最好的Node.js Docker镜像?
    1/1

    PHP中文网