tab欄切換製作

来源:https://www.cnblogs.com/chq1234/archive/2019/08/23/11402148.html
-Advertisement-
Play Games

tab欄切換製作 先上圖 要求1:預設狀態,第一個選項卡被選中,展示第一個選項卡的內容 策略:第一個選項卡預設有被選中的樣式,第一個選項卡對應的display: block,其他的dispaly設為none 要求2: 選項卡模塊:被點擊的變為紅底白字,其他的變為白底紅字 策略:排他思想,每次點擊一個 ...


tab欄切換製作

先上圖

要求1:預設狀態,第一個選項卡被選中,展示第一個選項卡的內容

策略:第一個選項卡預設有被選中的樣式,第一個選項卡對應的display: block,其他的dispaly設為none

要求2: 選項卡模塊:被點擊的變為紅底白字,其他的變為白底紅字

策略:排他思想,每次點擊一個選項卡時,先把其他選項卡設為預設樣式,然後自己設為被選中的樣式。這裡我們先在style裡面設置一個新的class,把這個樣式給被選中的選項卡。

要求3:每點擊某個選中卡,出現對應的模塊內容,點擊第一個li,展示第一個div,點擊第幾個li,展示第幾個div......,如何知道選中了第幾個li呢?

策略:利用for迴圈,給每個li設置一個自定義屬性,每點擊這個li,得到該liindex的屬性的值

 

代碼部分:

 1 <body>
 2     <div class="con">
 3         <div class="tab_list">
 4             <ul>
 5                 <!-- 第一個預設被選中 -->
 6                 <li class="tabChange">商品介紹</li>
 7                 <li>規格與包裝</li>
 8                 <li>售後保障</li>
 9                 <li>商品評價</li>
10             </ul>
11         </div>
12         <div class="tab_containt">
13             <div style="display: block">商品介紹模塊</div>
14             <div>規格與包裝模塊</div>
15             <div>售後保障模塊</div>
16             <div>商品評價模塊</div>
17         </div>
18     </div>

樣式:

 1 <style>
 2         * {
 3             padding: 0;
 4             margin: 0;
 5         }
 6         
 7         .con {
 8             width: 70%;
 9             margin: 50px auto;
10         }
11         
12         .tab_list {
13             border-bottom: 1px solid red;
14             height: 60px;
15         }
16         
17         .tab_list ul {}
18         
19         .tab_list ul li {
20             list-style: none;
21             margin-right: 10px;
22             width: 23%;
23             height: 60px;
24             line-height: 60px;
25             color: red;
26             float: left;
27             text-align: center;
28             cursor: pointer;
29         }
30         
31         .tab_containt div {
32             display: none;
33         }
34         
35         .tab_list ul .tabChange {
36             color: aliceblue;
37             background-color: red;
38         }

js部分:

 1    <script>
 2         // 切換選項卡時選項卡模塊:被點擊的變為紅底白字,其他的變為白底紅字,所以要用到排他思想
 3         var lis = document.querySelector(".tab_list").querySelectorAll("li");
 4         var items = document.querySelector(".tab_containt").querySelectorAll("div");
 5         //console.log(items);
 6 
 7         //console.log(lis);
 8         //給所有的li註冊點擊事件
 9         for (var i = 0; i < lis.length; i++) {
10             // 點擊第一個li,展示第一個div,點擊第幾個li,展示第幾個div......this
11             // 那麼我們如何知道點擊了第幾個li呢?思路:給li設置一個自定義屬性,那麼如何給5個li都設置帶有編號的index呢,當然用for迴圈啦
12             lis[i].setAttribute("index", i);
13             lis[i].onclick = function() {
14                 //console.log("dianij");
15                 //排他
16                 for (var i = 0; i < lis.length; i++) {
17                     lis[i].className = "";
18                 }
19                 //成就自己
20                 this.className = "tabChange";
21                 //得到選項卡的index屬性值
22                 var index = this.getAttribute("index");
23                 //console.log(index);
24 
25                 //先排他思想,清除其他的內容顯示第index個div的內容
26                 for (var i = 0; i < items.length; i++) {
27                     items[i].style.display = "none";
28                 }
29                 //使第index個盒子的內容顯示
30                 items[index].style.display = "block";
31 
32             }
33         }
34     </script>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 日誌就像是構建工具的 UI,如果輸出太混亂,真正的警告和錯誤很容易就被忽略了。Gradle 定義了 6 種日誌級別,以便於我們識別有用的信息。 ...
  • ### 前言 上篇文章我們講了[Okhttp的基本用法](https://www.jianshu.com/p/8e404d9c160f),今天根據上節講到請求流程來分析源碼,那麼第一步就是實例化OkHttpClient對象,所以我們今天主要分析下OkHttpClient源碼! #### 初始化-構造 ...
  • 聲明:本文來自我的導師wangjie. 本文主要包含以下內容 一、查看項目所在分支二、切換到目標分支三、查看當前所在分支四、編譯Android源碼五、source Android 編譯環境六、lunch 所需的編譯項目七、單編 模塊八、push 模塊 驗證修改是否生效 一、查看項目所在分支 git ...
  • js節點操作 整個頁面可以看成文檔節點,節點用node表示。頁面裡面全是節點,元素節點, 屬性節點,文本節點(文字,空格,換行), 節點:一定有節點類型,節點名稱,節點值 節點類型的值: 元素節點為1,屬性節點為2,文本節點為3 通過節點,可以更好的獲取元素。 邏輯全在代碼裡面 js部分 長話短說: ...
  • 個人博客主題美化 選擇主題 Hexo預設的主題是landscape,推薦以下主題: 1. "snippet" 2. "Hiero" 3. "JSimple" 4. "BlueLake" 詳見:https://github.com/search?q=hexo theme 應用主題 1. 下載主題 2. ...
  • 一.準備環境 1.安裝node.js 簡介 因為hexo是基於node.js的,所以node.js是必須要裝的,安裝也特別簡單,去 "官網" 下載適合自己windows的版本。安裝過程一直下一步就行了,什麼也不用選,在網上查資料的時候,看到有說要在Custom Setup這一步記得選 Add to ...
  • nodes.js詳細安裝 "Node.js" 本章節我們將向大家介紹在window和Linux上安裝Node.js的方法。 本安裝教程以Node.js v4.4.3 LTS(長期支持版本)版本為例。 Node.js安裝包及源碼下載地址為:https://nodejs.org/en/download/ ...
  • H5對自定義屬性的規定和添加獲取自定義屬性的方法 元素屬性那麼多,如何區分是自帶的屬性還是預設的屬性呢? H5規定自帶的屬性有個data- 首碼,如data-index="1",那麼,如何設置和獲取屬性值呢,請看下文。 <script> var divele = document.querySele ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...