日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

JS實(shí)現(xiàn)選項(xiàng)卡插件的兩種寫法(jQuery和class)

瀏覽:190日期:2024-04-09 09:36:02

本文實(shí)例為大家分享了JS實(shí)現(xiàn)選項(xiàng)卡插件的2種寫法,供大家參考,具體內(nèi)容如下

實(shí)現(xiàn)插件的幾個注意點(diǎn):

(1)定義一個固定的html結(jié)構(gòu),比如選項(xiàng)卡的標(biāo)題的標(biāo)簽為為li,每個選項(xiàng)卡的內(nèi)容的標(biāo)簽為div等等;(2)選中時的樣式提前確定;(3)最好先用簡單的JS實(shí)現(xiàn)選項(xiàng)卡的功能,再改為插件的模式。

html結(jié)構(gòu)如下:

<style> * { margin: 0; padding: 0; } ul { list-style: none; } #tabBox { box-sizing: border-box; margin: 20px auto; width: 500px; } .navBox { display: flex; position: relative; top: 1px; } .navBox li { box-sizing: border-box; margin-right: 10px; padding: 0 10px; line-height: 35px; border: 1px solid #999; cursor: pointer; } .navBox li.active { border-bottom-color: #FFF; } #tabBox>div { display: none; box-sizing: border-box; padding: 10px; height: 150px; border: 1px solid #999; } #tabBox>div.active { display: block; } </style> <div id='tabBox'> <ul class='navBox'> <li class='active'>編程</li> <li>讀書</li> <li>運(yùn)動</li> </ul> <div class='active'>編程使我快樂</div> <div>讀書使我幸福</div> <div>運(yùn)動使我健康</div></div>

先用JS實(shí)現(xiàn)選項(xiàng)卡的功能:

let len = liList.length; for(let i = 0; i < len; i++) { liList[i].index = i; liList[i].onclick = function() { for(let j = 0; j < len; j++) { if(j === this.index) { liList[j].className = ’active’; contentList[j].className = ’active’; } else{ liList[j].className = ’’; contentList[j].className = ’’; } } };}

實(shí)現(xiàn)插件的第一種方法:jQuery

利用$.fn.extend方法,在jQuery上擴(kuò)展一個選項(xiàng)卡功能的方法:

(function($){ function clickLi() { let $this = this, $navBox = $this.find(’.navBox’), $liList = $navBox.find(’li’), $contentList = $this.find(’div’); $liList.click(function(){ let $this = $(this), index = $this.index(); $this.addClass(’active’).siblings().removeClass(’active’); $contentList.eq(index).addClass(’active’).siblings().removeClass(’active’); }); } $.fn.extend({ tabClick: clickLi });})(jQuery);

使用方法:

let $tabBox = $(’#tabBox’);$tabBox.tabClick();

實(shí)現(xiàn)插件的第二種方法:class

利用ES6中的class類,創(chuàng)建一個選項(xiàng)卡類Tab,并添加屬性和方法,并且可以多參數(shù)傳遞實(shí)現(xiàn)選項(xiàng)卡:

(function(){ class Tab { constructor(selector, options) { // 處理第一個參數(shù) if(!selector) throw new ReferenceError(’The first selector parameter must be passed~~’); if(typeof selector === ’string’) this.container = document.querySelector(selector); else if(selector.nodeType) this.container = selector; this.initialParams(options); this.navBox = this.container.querySelector(’.navBox’), this.liList = this.navBox.querySelectorAll(’li’), this.contentList = this.container.querySelectorAll(’div’), this.count = this.liList.length; this.change(); this.handleLi(); } // 初始化參數(shù) initialParams(options) { let _default = { showIndex: 0, triggerEvent: ’click’ }; for(let key in options) { if (!options.hasOwnProperty(key)) break; _default[key] = options[key]; } // 把信息掛載到實(shí)例上 for (let key in _default) { if (!_default.hasOwnProperty(key)) break; this[key] = _default[key]; } } // 切換標(biāo)題 change() { [].forEach.call(this.liList, (item, index) => { if(index === this.showIndex) { this.liList[index].className = ’active’; this.contentList[index].className = ’active’; return; } this.liList[index].className = ’’; this.contentList[index].className = ’’; }); } // 綁定標(biāo)題對應(yīng)的事件 handleLi() { [].forEach.call(this.liList, (item, index) => { item.addEventListener(this.triggerEvent, () => { this.showIndex = index; this.change(); }); }); } } window.Tab = Tab;})();

使用方法:

new Tab(’#tabBox’, { showIndex: 2, triggerEvent: ’mouseenter’});

第二種方法是現(xiàn)在常用的方法,因?yàn)樗梢詡鬟f很多參數(shù)。可以根據(jù)需求,設(shè)置默認(rèn)要傳遞的參數(shù),將這個選項(xiàng)卡插件做的更完善。

如果大家還想深入學(xué)習(xí),可以點(diǎn)擊兩個精彩的專題:javascript選項(xiàng)卡操作方法匯總 jquery選項(xiàng)卡操作方法匯總

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
av综合电影网站| 久久精品免费看| 精品99在线| 亚洲五月综合| 在线视频精品| 黄色av日韩| 亚洲免费影院| 中文字幕日韩欧美精品高清在线| 亚洲欧洲午夜| 国产婷婷精品| 亚洲男人在线| 亚洲综合另类| 日韩一区二区三免费高清在线观看| 亚洲人成网77777色在线播放 | 国产精品久一| 欧美a级一区二区| 精品亚洲成人| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 国产九一精品| 视频一区二区国产| 中文字幕一区二区三区四区久久| 一区二区电影| 日韩av在线免费观看不卡| 国产伦精品一区二区三区在线播放 | 国产综合色区在线观看| 国产精品字幕| 伊人久久婷婷| 亚州av日韩av| 国产精品久久久一区二区| 精品国产aⅴ| 久久久精品五月天| 夜夜嗨一区二区三区| 国产探花在线精品| 日本久久黄色| 久久久9色精品国产一区二区三区| 久久婷婷久久| 亚洲一区二区小说| 国产精品免费精品自在线观看| 精品淫伦v久久水蜜桃| 欧美三区四区| 伊人久久大香伊蕉在人线观看热v| 国产日韩免费| 亚洲成人av观看| 噜噜噜躁狠狠躁狠狠精品视频 | 亚洲a一区二区三区| 久久精品亚洲人成影院| 蜜臀av一区二区三区| 国产精品a久久久久| 亚洲不卡系列| 亚洲精品在线二区| 精品国产精品久久一区免费式| 欧美亚洲激情| 日本aⅴ亚洲精品中文乱码| 国产福利91精品一区二区| 亚洲精品在线观看91| 国产精品中文字幕亚洲欧美| 蜜桃精品在线| 日韩午夜视频在线| 成人三级高清视频在线看| 久久国产精品亚洲77777| 欧美一级全黄| 神马久久午夜| 日韩一区精品| 久久国产免费| 国产美女久久| 99国产精品久久久久久久| 麻豆免费精品视频| 国产亚洲亚洲| 福利在线一区| 日韩中文一区二区| 深夜福利视频一区二区| 亚州av日韩av| 激情偷拍久久| 久久久久亚洲精品中文字幕| 美女毛片一区二区三区四区| 日本免费一区二区视频| 日韩免费一区| 国产日韩在线观看视频| 亚洲免费播放| 日韩成人综合| 国产欧美日韩一区二区三区在线| 婷婷激情综合| 久久精品国产99国产精品| 免费在线观看不卡| 日韩一区二区三区免费播放| 日韩精品免费观看视频| 久久精品播放| 麻豆91精品91久久久的内涵| 蜜臀av亚洲一区中文字幕| 98精品久久久久久久| 视频一区视频二区中文| 成人羞羞视频在线看网址| 国产精品一区亚洲| 视频一区中文字幕| 国产欧美日韩一区二区三区在线| 日本精品国产| 国产中文一区| 日韩在线免费| 国产精品久久久久久久久妇女| 国产精品videossex久久发布| 国产精品一国产精品| 男人天堂欧美日韩| 欧美日韩精品一本二本三本| 日韩不卡在线| 日韩av二区在线播放| 精品三级在线观看视频| 成人午夜国产| 国产精品va| 日本免费一区二区视频| 日韩专区欧美专区| 久久人人88| 国产 日韩 欧美一区| 成人综合一区| 国产96在线亚洲| 久久精品国产一区二区| 国产精品麻豆成人av电影艾秋 | 一级欧洲+日本+国产| 国产中文欧美日韩在线| 亚洲另类av| 免费一区二区视频| 国产精品日韩久久久| 日本国产精品| 日韩免费久久| 欧洲亚洲一区二区三区| av在线资源| 日本午夜大片a在线观看| av资源新版天堂在线| 首页国产精品| 亚洲成a人片| 久久精品国产www456c0m| 蜜臀av免费一区二区三区| 亚洲高清激情| 午夜欧美精品久久久久久久| 久久久9色精品国产一区二区三区| 日韩在线精品| 亚洲国产综合在线看不卡| 午夜欧美精品| 视频精品一区二区| 亚洲日本国产| 国产亚洲一卡2卡3卡4卡新区| 国产精品一区毛片| 韩日一区二区| 精精国产xxxx视频在线野外| 国产专区一区| 视频一区在线视频| 热久久久久久| 精品欧美视频| 亚洲h色精品| 欧美国产91| 美国欧美日韩国产在线播放| 亚洲最新av| 欧美有码在线| 国产一区二区三区国产精品| 成人午夜精品| 国产精品人人爽人人做我的可爱 | 亚洲激情欧美| 亚洲精品九九| 欧美国产不卡| 久久天堂av| 日韩精品一级中文字幕精品视频免费观看 | 蜜桃视频一区二区三区在线观看| 日本不卡一区二区三区| 老鸭窝一区二区久久精品| 色婷婷久久久| 色8久久久久| 国产欧美综合一区二区三区| 电影91久久久| 亚洲专区在线| 欧美1区二区| 欧美成人亚洲| 欧美日韩va| 国产日韩欧美三级| 91精品国产成人观看| 亚洲一区二区日韩| 精品国产18久久久久久二百| 美女毛片一区二区三区四区 | 日韩福利一区| 中文一区一区三区免费在线观| 国产精品高清一区二区| 99精品在线| 欧美一级网站| 欧美性感美女一区二区 | 中文字幕一区二区精品区| 久久精品国产网站| 久久国产88| 国产h片在线观看| 人人爽香蕉精品| 中文在线免费视频| 亚洲字幕久久| 日韩一区二区在线免费| 日韩精品a在线观看91| 欧美日韩日本国产亚洲在线| 国产美女久久| 9色国产精品| 国产精品成人a在线观看| 一本综合精品| 久久久国产亚洲精品| 国产精品一区二区av日韩在线| 图片区亚洲欧美小说区| 麻豆一区二区在线|