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


Posted in Javascript onJanuary 02, 2014

第一种方法是用原生的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是借鉴与别人的方法,第二种是我在第一个方法的基础上编写的。。。
Javascript 相关文章推荐
新老版本juqery获取radio对象的方法
Mar 01 Javascript
Javascript写入txt和读取txt文件示例
Feb 12 Javascript
JavaScript中使用Callback控制流程介绍
Mar 16 Javascript
总结JavaScript设计模式编程中的享元模式使用
May 21 Javascript
Vuejs第十二篇之动态组件全面解析
Sep 09 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
May 26 Javascript
Angularjs的$http异步删除数据详解及实例
Jul 27 Javascript
React-Router如何进行页面权限管理的方法
Dec 06 Javascript
详解使用vue-admin-template的优化历程
May 20 Javascript
深入理解Vue 的钩子函数
Sep 05 Javascript
JS数组实现分类统计实例代码
Sep 30 Javascript
如何进行微信公众号开发的本地调试的方法
Jun 16 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
Dec 31 #Javascript
js判断字符长度以及中英文数字等
Dec 31 #Javascript
checkbox全选所涉及到的知识点介绍
Dec 31 #Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
Dec 31 #Javascript
js类式继承的具体实现方法
Dec 31 #Javascript
利用javascript判断文件是否存在
Dec 31 #Javascript
jquery实现checkbox全选全不选的简单实例
Dec 31 #Javascript
You might like
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
实例讲解PHP表单
2020/06/10 PHP
jquery $.ajax入门应用二
2008/11/19 Javascript
JS 面向对象的5钟写法
2009/07/31 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
Python CSV模块使用实例
2015/04/09 Python
python获取本地计算机名字的方法
2015/04/29 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
python同步windows和linux文件
2019/08/29 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
python mock测试的示例
2020/10/19 Python
python自动化发送邮件实例讲解
2021/01/04 Python
英语系本科生个人求职信
2013/09/21 职场文书
高中毕业生个人自我鉴定
2013/11/24 职场文书
电子商务专员岗位职责
2013/12/11 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
python中tkinter复选框使用操作
2021/11/11 Python
一文弄懂MySQL索引创建原则
2022/02/28 MySQL