• JavaScript小工具--TAB选项卡切换隐藏显示动画效果


    开发中经常会遇到TAB选项卡:点击对应的选项卡,该选项卡为active状态,其余为未选中状态,同时显示对应的TAB内容。如下

     以下为简化例子:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>测试TAB</title>
    <link href="CSS/style_right.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
    <script type="text/javascript" src="../js/tabFactory.js"></script>
    </head>
    <style type="text/css">
      .active{background-color: #ccc;}
    </style>
    <body>
      <ul id="tabTitleUlId">
        <li>title1</li>
        <li>title2</li>
        <li>title3</li>
      </ul>
      <ul id="tabContentUlId">
        <li>content1</li>
        <li>content2</li>
        <li>content3</li>
      </ul>
      
    </body>
    </html>

    编写一个通用的jQuery方法,以便以后方便使用

    /*
    *
    *用途:将TAB选择卡设置效果。
    *初始状态--title中的第一个title为选中效果,其余不是,content中第一个content显示,其余content隐藏
    *使用效果: 点击或鼠标移至TAB选项卡的title,title的class为选中效果,其他title为非选中效果,title对应的content项显示,其他content隐藏
    *使用前提:每一个title放在一个<ul>标签下的<li>标签中 每一个content放在另一个<ul>标签的<li>中 title的选中效果的class设置在li标签中 例如:
    <ul id="tabTitleUlId">
      <li class="actived">title1</li>
      <li>title2</li>
      <li>title3</li>
    </ul>
    <ul id="tabContentUlId">
      <li>content1</li>
      <li>content2</li>
      <li>content3</li>
    </ul>
    ********/
    $(function(){
      //定义jQurey新方法 用 $.newMethodName = function(a,b,c){...}  定义完后就可以用$.newMethodName(a,b,c)使用了
      $.jqtab = function(tabTitleUlId , tabContentUlId , titleActiveClassName , actionName){
        //首先把所有content隐藏
        $("#"+tabContentUlId).find("li").hide();
        //其次再把第一个content显示出来
        //$("#"+tabContentUlId).find("li:first").show();同样效果
        $("#"+tabContentUlId).find("li").first().show();
    
        //把所有title都重置并把第一个li设置为active
        $("#" + tabTitleUlId).find("li").removeClass(titleActiveClassName);
        $("#" + tabTitleUlId).find("li:first").addClass(titleActiveClassName);
    
        $("#"+tabTitleUlId).children("li").bind(actionName , function(){
          //点击后对应的title为选中状态,其他为非选中
          $(this).addClass(titleActiveClassName).siblings("li").removeClass(titleActiveClassName);
    
          var index = $("#"+tabTitleUlId).children("li").index(this);//注意这里是this 不是$(this)
          $("#"+tabContentUlId).children("li").eq(index).show().siblings().hide();
        })
      }
    });

    这个通用的方法有以下参数

    tabTitleUlId:title的ul标签的id  

    tabContentUlId:content的ul标签的id

    titleActiveClassName:title选中时的classname

    actionName:触发事件的方式如"click"

    使用方法也很简单:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>测试TAB</title>
    <link href="CSS/style_right.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
    <script type="text/javascript" src="../js/tabFactory.js"></script>
    </head>
    <style type="text/css">
      .active{background-color: #ccc;}
    </style>
    <body>
      <ul id="tabTitleUlId">
        <li>title1</li>
        <li>title2</li>
        <li>title3</li>
      </ul>
      <ul id="tabContentUlId">
        <li>content1</li>
        <li>content2</li>
        <li>content3</li>
      </ul>
      <script type="text/javascript">
    //直接调用新的JQuery方法
      $(function(){
        $.jqtab("tabTitleUlId" ,"tabContentUlId" ,"active" , "click" )
      });
      </script>
    </body>
    </html>
  • 相关阅读:
    HashMap中红黑树插入节点的调整过程
    grep使用小tips
    数字电路设计流程之LINT,CDC
    芯片设计中的efuse
    NetSuite's next generation transaction Inbound Shipment
    hadoop集群搭建
    hive安装
    慢查询SQL排查
    sipresponse
    【项目】项目200
  • 原文地址:https://www.cnblogs.com/heyucool/p/5248782.html
Copyright © 2020-2023  润新知