zoukankan      html  css  js  c++  java
  • jQuery选项卡插件

    html结构

    <ul id="tabs" class="tabs">
        <li data-tab="users">Users</li>
        <li data-tab="groups">Groups</li>
    </ul>
    <div id="tabsContent" class="tabsContent">
        <div data-tab="users" class="tab-item"> item1 </div>
        <div data-tab="groups" class="tab-item"> item2 </div>
    </div>

    css样式

    .tabs{
        width:500px;
        height:30px;
        background:#eee;
    }
    .tabs li{
        float:left;
        width:250px;
        font:18px/30px "Microsoft YaHei";
        color:#333;
        text-align: center;
        cursor: pointer;
    }
    .tabs li.active{
        background:#0aa;
    }
    
    .tabsContent{
        width:498px;
        border:1px solid #888;
    }
    .tabsContent .tab-item{
        height:250px;
        width:100%;
        font-size: 45px;
        display: none;
    }
    .tabsContent .active{
        display: block;
    }

    js脚本

    (function ($) {
    
        /* 
         * jquery tabs 插件
        */
        $.fn.tabs = function (control) {
    
            var $element = $(this), // 切换的触点 li => tabs
                $control = $(control); // 切换的内容 tab-item => tabsContent
    
            // 委托li的点击事件
            $element.delegate("li", "click", function () {
                // li 对应的 data-tab属性值
                var tabName = $(this).attr("data-tab");
    
                $element.trigger("change.tab", tabName);
            });
    
            // change.tab 第一步:改变li.active
            $element.bind("change.tab", function (e, tabName) {
                $element.find("[data-tab]").removeClass("active");
                $element.find("[data-tab="+ tabName +"]").addClass("active");
            });
    
            // change.tab 第二步:改变tab-item.active
            $element.bind("change.tab", function (e, tabName) {
                $control.find("[data-tab]").removeClass("active");
                $control.find("[data-tab="+ tabName +"]").addClass("active");
            });
    
            //  激活第一个选项卡
            $element.trigger("change.tab", $element.find("li:first").attr("data-tab"));
    
            return this;  // 返回链式调用
        };
    })(jQuery);
    
    
    // 基本示例
    $("#tabs").tabs("#tabsContent");
    
    
    /*
     * 应用扩展
     * 切换时将tabName写入hash
     * 当hashchange的时候触发tabs切换
    */
    // 当切换的时候,把tabName写入hash
    $("#tabs").bind("change.tab", function (e, tabName) {
        location.hash = tabName;
    });
    
    // 目前除了 ie67 外都原生支持 hashchange 事件
    $(window).bind("hashchange", function () {
        var tabName = location.hash.slice(1);
        $("#tabs").trigger("change.tab", tabName);
    });
  • 相关阅读:
    curl获取HTTP返回状态码
    存储过程中如何实现从数组获取数据
    ElasticsearchParseException: malformed, expected settings to start with 'object', instead was [VALUE_STRING]
    【并发编程】如果让你用三个线程循环打印ABC,你有几种写法?
    【基础】IdentityHashMap
    【基础】ThreadPoolExecutor
    【算法】快速排序
    【Java8新特性Stream】list转map
    【算法】华为南研所-括号匹配
    windows sourceTree 密码错误
  • 原文地址:https://www.cnblogs.com/xiankui/p/3794244.html
Copyright © 2011-2022 走看看