欢迎访问宙启技术站
智能推送

js-tab选项卡

发布时间:2023-05-15 08:56:04

js-tab选项卡介绍

随着 JavaScript 技术的不断发展,为了提升页面的用户体验,越来越多的网站开始采用 js-tab 方式来实现选项卡,而 js-tab 的实现方式也越来越多样化。选项卡是一种常见的网站页面布局,通过选项卡可以很方便地切换内容,提供更加丰富的用户体验。

js-tab 实现原理

它的实现原理是通过 JavaScript 改变 DOM 元素的样式来实现选项卡的切换。使用 JavaScript 函数 let tabChange = function() {…} 来获取 tab 元素,通过添加或移除 class 实现选项卡的切换。在 HTML 中为选项卡添加相应的 class 名称,使用 CSS 来设置样式,然后根据选中的选项卡,在 JavaScript 中添加或去除选项卡对应的 class 来实现切换。

js-tab 实现步骤

首先在 HTML 页面中写出选项卡的框架:

<div class="nav">
  <ul class="tab-header-list">
    <li class="active">      选项卡</li>
    <li>第二选项卡</li>
  </ul>
  <div class="tab-content-list">
    <div class="active">      选项卡内容</div>
    <div>第二选项卡内容</div>
  </div>
</div>

然后在 CSS 中设置选项卡的样式:

.nav ul.tab-header-list li {
  list-style: none;
  display: inline-block;
  padding: 10px;
  border: 1px solid #ccc;
  cursor: pointer;
}

.nav ul.tab-header-list li.active {
  background: #efefef;
  border-bottom: none;
}

.nav .tab-content-list div {
  display: none;
  padding: 10px;
}

.nav .tab-content-list div.active {
  display: block;
}

接下来,在 JS 中编写选项卡的交互代码:

let tabChange = function() {
  // 获取选项卡头部元素
  let headerList = document.querySelector(".tab-header-list");
  // 获取所有选项卡头部元素的子节点(也就是选项卡按钮)
  let tabHeaders = headerList.childNodes;
  // 将选项卡头部元素的子节点转换为数组
  let tabHeadersArr = Array.from(tabHeaders);
  // 筛选出选项卡头部元素下所有的li元素
  let tabItems = tabHeadersArr.filter(node => node.nodeName === "LI");
  // 获取选项卡内容元素
  let contentList = document.querySelector(".tab-content-list");
  // 获取所有选项卡内容元素的子节点(也就是选项卡内容)
  let tabContents = contentList.childNodes;
  // 将选项卡内容元素的子节点转换为数组
  let tabContentsArr = Array.from(tabContents);
  // 筛选出选项卡内容元素下所有的div元素
  let tabs = tabContentsArr.filter(node => node.nodeName === "DIV");
  // 点击选项卡时,切换选项卡
  tabItems.forEach(function(tabHeader, index) {
    tabHeader.onclick = function() {
      // 移除当前选项卡的 'active' 类
      tabItems.forEach(item => item.classList.remove('active'));
      // 将当前选项卡添加 'active' 类
      this.classList.add('active');
      // 移除当前选项卡内容的 'active' 类
      tabs.forEach(item => item.classList.remove('active'));
      // 将当前选项卡内容添加 'active' 类
      tabs[index].classList.add('active');
    }
  });
}

// 页面加载完成后执行选项卡交互代码
window.onload = function() {
  tabChange();
}

以上就是 js-tab 实现选项卡的全部代码,通过这些简单的代码,便可以实现选项卡的切换。

总结

js-tab 方式实现选项卡,可以提高网页的用户体验,为用户带来更加便捷的浏览方式,同时也增加了网站的互动性,如在购物网站切换不同的商品类别,或在博客网站查看不同的分类等。因此,掌握选项卡的实现方法,有助于我们更好的开发网站。