在網站開發中,常常需要使用一些交互功能來提高用戶體驗,其中之一是動態 Tab。通過 JavaScript 實現的動態 Tab 可以幫助我們在頁面上實現一些切換顯示內容的效果。比如,當我們打開一個頁面時,頁面上會默認顯示一部分內容,而點擊不同的標簽頁,則會顯示其他不同的內容。
在實現動態 Tab 的過程中,我們需要考慮兩個方面:標簽頁切換和內容的顯示。下面我們使用一個實例來介紹具體實現方法。
首先,我們需要在頁面上添加一組標簽頁,且要根據點擊事件來切換顯示相應的內容。我們可以先在 HTML 中預設一個包含所有標簽頁的容器,并添加一個 class 值為 tab-heading 的 div 標簽。在這個容器中,我們可以添加多個具有 class 值為 tab-item 的標簽,作為每個標簽頁的占位符。每個標簽頁的內容以 div 標簽的形式呈現,并且可以以 class 值為 tab-pane 區分。
<div class="tab-heading"> <div class="tab-item active">Tab 1</div> <div class="tab-item">Tab 2</div> <div class="tab-item">Tab 3</div> </div> <div class="tab-content"> <div class="tab-pane active">Content for Tab 1</div> <div class="tab-pane">Content for Tab 2</div> <div class="tab-pane">Content for Tab 3</div> </div>
接下來,我們需要通過 JavaScript 來實現標簽頁的切換。我們可以監聽所有標簽頁的 click 事件,并從中找到我們需要顯示的標簽頁。如果點擊了某個標簽頁,我們可以先將之前的活動標簽頁去除 class 值為 active,然后將當前點擊的標簽頁添加 active 類。在實現標簽頁切換的過程中,我們還需要找到當前標簽頁對應的內容塊,并將其添加 active 類。如果我們希望在頁面加載時,默認顯示第一個標簽頁的內容則需要在標簽頁的 div 標簽中添加 active 類。此時,我們可以將 class 值為 active 的標簽頁和 class 值為 active 的內容塊設置為初始狀態。這樣,當我們在頁面上點擊某個標簽頁時,對應的內容塊就會顯示。
let headingTabs = document.querySelectorAll('.tab-item'); for (let i = 0; i< headingTabs.length; i++) { headingTabs[i].addEventListener('click', function () { let current = document.querySelector('.active'); current.classList.remove('active'); let currentTab = this; currentTab.classList.add('active'); let contentId = currentTab.getAttribute('data-target'); let content = document.querySelector(contentId); content.classList.add('active'); }); }
通過上述代碼,我們現在就可以實現動態 Tab 的切換效果了。我們可以在網站中多處使用這種交互式的功能,以此來改善用戶的瀏覽體驗。