Ярослав Смирнов Asked:2020-03-22 02:12:57 +0000 UTC2020-03-22 02:12:57 +0000 UTC 2020-03-22 02:12:57 +0000 UTC 如何在开关上制作不同的标签? 772 如何在同一页面上制作不同的标签,即。 这样当您单击按钮 2 时,块 1 的内容被隐藏,第二块的内容被显示。(无需刷新页面和切换到其他选项卡) html 1 个回答 Voted Best Answer meine 2020-03-22T02:25:10Z2020-03-22T02:25:10Z class Tabs { constructor(node) { this.node = node; if (!this.node) return; this.onTabListItemClick = this.onTabListItemClick.bind(this); this.unsetActiveTab = this.unsetActiveTab.bind(this); this.tabList = this.node.querySelector(".tab__list"); this.tabContentItems = this.node.querySelectorAll(".tab__content-item"); this.tabList.addEventListener("click", this.onTabListItemClick, false); } onTabListItemClick(event) { const item = event.target.closest(".tab__list-item"); const index = [...this.tabList.children].indexOf(item); if (!item) return; this.unsetActiveTab(); this.setActiveTab(item, index); } unsetActiveTab() { [...document.querySelectorAll(".tab__list-item")].forEach(node => node.classList.remove("tab__list-item_selected")); [...document.querySelectorAll(".tab__content-item")].forEach(node => node.classList.remove("tab__content-item_selected")); } setActiveTab(item, index) { item.classList.add("tab__list-item_selected"); this.tabContentItems[index].classList.add("tab__content-item_selected"); } } new Tabs(document.querySelector(".tab")); * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: "Roboto", sans-serif; } .container { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .tab { position: relative; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23); } .tab__list { display: flex; align-items: center; margin: 0; padding: 0; list-style-type: none; } .tab__list-item { min-width: 150px; padding: 15px 0; background: #f5f5f5; text-align: center; cursor: pointer; } .tab__list-item_selected { background: #fff; } .tab__content { padding: 50px; } .tab__content-item { display: none; } .tab__content-item_selected { display: block; } <div class="container"> <div class="tab"> <ul class="tab__list"> <li class="tab__list-item tab__list-item_selected">Item 1</li> <li class="tab__list-item">Item 2</li> <li class="tab__list-item">Item 3</li> <li class="tab__list-item">Item 4</li> <li class="tab__list-item">Item 5</li> </ul> <div class="tab__content"> <div class="tab__content-item tab__content-item_selected"> <h1>Title #1</h1> <p>Paragraph #1</p> </div> <div class="tab__content-item"> <h1>Title #2</h1> <p>Paragraph #2</p> </div> <div class="tab__content-item"> <h1>Title #3</h1> <p>Paragraph #3</p> </div> <div class="tab__content-item"> <h1>Title #4</h1> <p>Paragraph #4</p> </div> <div class="tab__content-item"> <h1>Title #5</h1> <p>Paragraph #5</p> </div> </div> </div> </div>
1 个回答