js-tab选项卡
說道tab選項卡,顧名思義,就是切換不同內容分類,想必學過前端的都知道,tab有很多方法可以實現,最近剛跟師傅學了一種,感覺很簡便,很實用哦。?
?
一、先看一下結果
?
?
?
二、可以根據圖來布局,首先上面標簽和下面內容,
需要注意的是點擊上面a標簽的鏈接和下面div的id一一對應起來,
?
三、就是最重要的js部分了。
?
這個地方可以分幾個階段去思考
1.首先得有事件去觸發點擊
?
2.獲取與內容對應a標簽的href,這樣就可以對下面進行顯示或隱藏,
3.通過唯一的class ?--> ?active ? 來切換你想要的內容
?
四、加上css,這樣就差不多完成了
這里根據需求自己定吧,重點在js
五、這樣一個簡單的小程序差不多就完成了。但是自己寫的代碼得負責到底,所以測試也是相當重要的,
1.首先,點擊的選項會有偏差,所以我們要適當的加些判斷,只有點擊A標簽的時候才能觸發
注意:tagName 一定要大寫 ? ?比如:A ?標簽 ? ?
2.還有一個地方需要優化,你會發現,現在在第一個標簽上,如果在點擊當前的,程序還會執行一遍,雖然你看不到,所一這個最好優化一下
點擊的時候先判斷一下就好啦。
?
下面附上我的源碼,希望大家一起學習。請大家多多指教,隨時留言回復,
?
<!DOCTYPE html> <html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><title>tab選項卡</title><style type="text/css">*{font-family: simhei;}.tab-group{padding: 1em 0em;}.tab-group>a{padding: 1em 2em;color: #666;text-decoration: none;}.tab-group>.active{padding: 1em 2em;background: #999;color: #fff;}.content-group{width: 31.7%;height: 10em;background: #999;color: #fff;}.content-group>.content-item{display: none;}.content-group>.active{display: inline-block;}</style></head><body><nav class="tab-group"><a href="item01" class="tab-item active">電腦</a><a href="item02" class="tab-item">手機</a><a href="item03" class="tab-item">平板</a></nav><div class="content-group"><div class="content-item active" id="item01">聯想</div><div class="content-item" id="item02">小米</div><div class="content-item" id="item03">蘋果</div></div></body> </html> <script type="text/javascript">document.querySelector(".tab-group").addEventListener('click',function(event){var target = event.target;//點擊選項if(target.tagName === 'A' && ~target.className.indexOf('tab-item')){event.preventDefault();if(~target.className.indexOf('active')){return;}var href = target.getAttribute('href');//獲取點擊的目標標志//TODO 切換選項var activeTab = document.querySelector(".tab-group>.active");activeTab.className = activeTab.className.replace(' active', '');target.className = target.className + ' ' + "active";//TODO 選項對應的內容切換var activeContent = document.querySelector('.content-group>.active');activeContent.classList.remove('active');var contentElem = document.getElementById(href);contentElem.classList.add("active");}},false); </script>
轉載于:https://www.cnblogs.com/xianxianxxx/p/6398738.html
總結
- 上一篇: OpenStack Network --
- 下一篇: CentOS 7 上安装 redis3.