<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JavaScript插件Tab選項卡效果

        來源:懂視網 責編:小采 時間:2020-11-27 22:25:29
        文檔

        JavaScript插件Tab選項卡效果

        JavaScript插件Tab選項卡效果:閑來無事,研究了一下JavaScript插件的寫法,今天就將自己寫的一個小插件記錄下來。 本文介紹了此款插件的基本用法,實現的功能以及代碼。 首先,來看看最終效果: 這是一款普通的Tab選項卡插件,下面來講講它實現了哪些功能: 1、支持不同鼠標事件觸發
        推薦度:
        導讀JavaScript插件Tab選項卡效果:閑來無事,研究了一下JavaScript插件的寫法,今天就將自己寫的一個小插件記錄下來。 本文介紹了此款插件的基本用法,實現的功能以及代碼。 首先,來看看最終效果: 這是一款普通的Tab選項卡插件,下面來講講它實現了哪些功能: 1、支持不同鼠標事件觸發

        閑來無事,研究了一下JavaScript插件的寫法,今天就將自己寫的一個小插件記錄下來。

        本文介紹了此款插件的基本用法,實現的功能以及代碼。

        首先,來看看最終效果:

        這是一款普通的Tab選項卡插件,下面來講講它實現了哪些功能:

        1、支持不同鼠標事件觸發選項卡切換效果;
        2、支持不同切換效果的配置,例如淡入淡出/直接切換;
        3、支持默認展示第幾個選項卡的配置;
        4、支持選項卡的自動切換效果。

        例子很簡單,需要用到的知識包括:
        1、html、css的基礎知識;
        2、對this,prototype,new等關鍵詞的理解。

        簡而言之,就是通過參數配置的形式來完成不同效果的展示。

        下面先看一看如何使用:

        1、$(".js-tab").etab();
        2、$(".js-tab").etab({
                        triggerType: "click",
                        effect: "fade",
                        invoke: 2,
                        auto: 3000
                    });
        3、Tab.init($(".js-tab"));

        本插件支持幾種不同的初始化方式,代碼很簡單,類似于BootStrap插件的使用方法。下面奉上完整的代碼:

        index.html

        <!DOCTYPE html>
        <html lang="en">
        <head>
         <meta charset="UTF-8">
         <title>Tab選項卡</title>
         <link href="tab.css" rel="stylesheet">
         <style>
         * {
         margin:0;
         padding:0;
         }
         body {
         background-color: #323232;
         font-size:12px;
         font-family:微軟雅黑;
         padding:100px;
         }
         ul, li {
         list-style-type: none;
         }
         </style>
         <script src="../lib/jquery-1.11.3.js"></script>
         <script type="text/javascript" src="tab.js"></script>
        </head>
        <body>
         <div class="js-tab tab">
         <ul class="tab-nav">
         <li class="active"><a href="#">新聞</a> </li>
         <li><a href="#">電影</a> </li>
         <li><a href="#">娛樂</a> </li>
         <li><a href="#">科技</a> </li>
         </ul>
        
         <div class="content-wrap">
         <div class="content-item current">
         <h3>新聞</h3>
         </div>
         <div class="content-item">
         <h3>電影</h3>
         </div>
         <div class="content-item">
         <h3>娛樂</h3>
         </div>
         <div class="content-item">
         <h3>科技</h3>
         </div>
         </div>
         </div>
         <script>
         $(function() {
        // Tab.init($(".js-tab"));
         $(".js-tab").etab({
         triggerType: "click",
         effect: "fade",
         invoke: 2,
         auto: 3000
         });
         $(".js-tab").etab();
         });
         </script>
        </body>
        </html>
        
        .tab {
         width: 300px;
        }
        
        .tab .tab-nav {
         height: 30px;
        }
        
        .tab .tab-nav li {
         float: left;
         margin-right:5px;
         background-color:#767676;
         border-radius:3px 3px 0 0;
        }
        
        .tab .tab-nav li a{
         display:block;
         height:30px;
         padding:0 20px;
         color: white;
         line-height:30px;
         text-decoration: none;
        }
        
        .tab .tab-nav .active {
         background-color: #fff;
        
        }
        
        .tab .tab-nav .active a{
         color: #777;
        }
        
        .tab .content-wrap{
         background-color: white;
         padding:5px;
         height:200px
        }
        
        .tab .content-wrap .content-item {
         position:absolute;
         height: 200px;
         display: none;
        }
        
        .tab .content-wrap .current {
         height: 200px;
         display: block;
        }
        
        

        最后將插件代碼列出來,在代碼里面已經寫了很詳細的注釋:

        /**
         * Created by Wu.lin on 2017/11/12.
         */
        (function($){
        
         var Tab = function(tab, _params) {
         var _this = this;
        
         //保存單個Tab組件
         this.tab = tab;
        
         this.params = _params;
        
         //默認配置參數
         this.config = {
         //用來定義鼠標的出發類型 "click"/mouseover
         "triggerType": "mouseover",
        
         //用來定義內容切換效果,直接切換/淡入淡出
         "effect": "default",
        
         //默認展示第幾個Tab
         "invoke": "1",
        
         //用來定義Tab是否自動切換,當指定了事件間隔,就表示自動切換,并指定了切換間隔
         "auto": false
         };
        
         //如果配置參數存在,就擴展默認的配置參數
         if(this.params){
         $.extend(this.config, this.params);
         }
        
         //保存Tab標簽列表,以及對應的內容列表
         this.tabItem = this.tab.find("ul.tab-nav li");
         this.contentItem = this.tab.find("div.content-wrap .content-item");
        
         //保存配置參數
         var config = this.config;
        
         if(config.triggerType === "click") {
         this.tabItem.bind(config.triggerType, function() {
         _this.invoke($(this));
         });
        
         } else {
         this.tabItem.mouseover(function(){
         _this.invoke($(this));
         });
         }
        
         //自動切換功能
         if(config.auto) {
         this.timmer = null;
        
         //計數器
         this.loop = 0;
        
         this.autoPlay();
        
         this.tab.hover(function() {
         window.clearInterval(_this.timmer);
         }, function() {
         _this.autoPlay();
         });
         }
        
         //設置默認顯示第幾個Tab
         if(config.invoke > 1) {
         this.invoke(this.tabItem.eq(config.invoke - 1));
         }
        
        
         };
        
         Tab.prototype = {
        
         //事件驅動函數
         invoke: function(currentTab) {
        
         /**
         * 1、執行Tab選中狀態,當前選中Tab加上Active,
         * 2、切換對應Tab內容,根據配置參數effect參數default|fade
         */
        
         var index = currentTab.index();
         var conItem = this.contentItem;
        
         //Tab切換
         currentTab.addClass("active").siblings().removeClass("active");
        
         //內容區域切換
         var effect = this.config.effect;
        
         if(effect === "fade") {
         conItem.eq(index).fadeIn().siblings().fadeOut();
         } else {
         conItem.eq(index).addClass("current").siblings().removeClass("current");
         }
        
         //注意,如果配置了自動切換,記得把當前的loop值設置為當前的Tab的index
         if(this.config.auto) {
         this.loop = index;
         }
         },
        
         //自動間隔切換
         autoPlay: function() {
        
         var _this_ = this,
         tabItems = this.tabItem, //臨時保存Tab列表
         tabLength = tabItems.size(),
         config = this.config;
        
         this.timmer = window.setInterval(function() {
         _this_.loop++;
         if(_this_.loop >= tabLength) {
         _this_.loop = 0;
         }
        
         tabItems.eq(_this_.loop).trigger(config.triggerType);
         }, config.auto);
        
         }
         };
        
         Tab.init = function(tabs) {
         var _this_ = this;
         tabs.each(function() {
         new _this_($(this));
         });
         // var tab = new Tab($(".js-tab").eq(0));
         };
        
         //注冊成JQuery方法
         $.fn.extend({
         etab: function(_param) {
         this.each(function () {
         new Tab($(this), _param);
         });
         return this;
         }
         });
        
         window.Tab = Tab;
        
        })(jQuery);
        
        

        如此看來,是不是很簡單,一起來動手試試吧!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript插件Tab選項卡效果

        JavaScript插件Tab選項卡效果:閑來無事,研究了一下JavaScript插件的寫法,今天就將自己寫的一個小插件記錄下來。 本文介紹了此款插件的基本用法,實現的功能以及代碼。 首先,來看看最終效果: 這是一款普通的Tab選項卡插件,下面來講講它實現了哪些功能: 1、支持不同鼠標事件觸發
        推薦度:
        標簽: js 效果 javascript
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲成A人片77777国产| 日韩在线视频免费| 69视频在线观看免费| 免费一级一片一毛片| 久久久久亚洲AV无码去区首| 成年性生交大片免费看| 一本色道久久88—综合亚洲精品| 最好看最新的中文字幕免费| 亚洲男人的天堂在线| 2021在线永久免费视频| 亚洲乱人伦精品图片| 成年男女免费视频网站| 深夜福利在线免费观看| 久久久久亚洲精品中文字幕| a级毛片视频免费观看| 色婷婷六月亚洲婷婷丁香| 一本岛高清v不卡免费一三区| 在线aⅴ亚洲中文字幕| 午夜dj免费在线观看| 羞羞视频网站免费入口| 国产aⅴ无码专区亚洲av| 最近高清中文字幕免费| 亚洲精品天堂无码中文字幕| 免费观看日本污污ww网站一区| 一区二区三区免费视频播放器| 亚洲精品无码久久一线| 亚洲精品视频在线观看免费| 亚洲人成网站在线播放2019| 亚洲精品线路一在线观看| 99久久综合精品免费| 亚洲欧洲精品成人久久曰| 亚洲中文字幕无码中文字在线| 99久热只有精品视频免费看 | 在线亚洲精品自拍| 午夜网站在线观看免费完整高清观看| 久久久亚洲欧洲日产国码是AV| 日韩高清免费在线观看| 久久www免费人成精品香蕉| 亚洲成a人片77777群色| 四虎永久免费地址在线网站| 一级毛片aaaaaa免费看|