JS实现的简单标签点击切换功能示例

首先来讲一下JS实现的简单标签点击切换功能示例的攻略。

1. 确定页面结构和元素

首先我们需要确定页面结构和需要被点击切换的标签元素。在示例中,我们可以使用HTML ul 和 li 标签来实现。

<ul class="tab">
  <li class="active">标签1</li>
  <li>标签2</li>
  <li>标签3</li>
</ul>

2. 使用CSS美化样式

接下来,我们可以使用CSS对标签样式进行美化,为标签添加样式的时候,可以使用:hover伪类来实现当鼠标在其上方时高亮显示的效果。

.tab {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}

.tab li {
  margin-right: 20px;
  cursor: pointer;
  padding: 8px 10px;
  border-radius: 5px;
}

.tab li.active {
  background-color: #ccc;
}

3. 使用JS实现标签切换

最后一步,我们需要使用JS来实现标签的切换。我们可以通过addEventListener()方法,为每个标签元素添加click事件监听器,来实现标签的切换效果。在事件监听器中,我们可以为选中的标签添加active类,同时移除之前选中标签的active类,来实现选中标签切换。

以下是具体的代码示例,实现了点击标签进行切换的效果。

const tabs = document.querySelectorAll('.tab li')

tabs.forEach(tab => {
  tab.addEventListener('click', function() {
    const selectedTab = document.querySelector('.active')
    selectedTab.classList.remove('active')
    this.classList.add('active')
  })
})

示例1:在网页顶部实现标签点击切换

现在,我们就可以应用刚刚学到的内容,在一个具体的网站页面中,实现标签点击切换的效果。

比如,在网页的顶部导航栏中,我们可以添加一个标签,点击标签可以切换显示不同的页面内容。

<nav>
  <ul class="tabs">
    <li class="active">首页</li>
    <li>产品介绍</li>
    <li>关于我们</li>
  </ul>
</nav>

在CSS中,我们可以为标签样式添加一些动画效果,使之看起来更加美观。

.tabs {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tabs li {
  cursor: pointer;
  margin-right: 20px;
  padding: 5px 10px;
  border-radius: 5px;
  transition: all 0.3s ease-in;
}

.tabs li.active {
  background-color: #ccc;
  transform: rotate(360deg);
}

最后,在JS代码中,我们可以使用switch语句来切换显示对应的页面内容。

const tabs = document.querySelectorAll('.tabs li')
const pages = document.querySelectorAll('.page')

tabs.forEach((tab, index) => {
  tab.addEventListener('click', function() {
    const selectedTab = document.querySelector('.tabs .active')
    selectedTab.classList.remove('active')
    this.classList.add('active')

    pages.forEach(page => {
      page.classList.remove('active')
    })

    switch (index) {
      case 0:
        document.querySelector('.page.home').classList.add('active')
        break
      case 1:
        document.querySelector('.page.products').classList.add('active')
        break
      case 2:
        document.querySelector('.page.about').classList.add('active')
        break
    }
  })
})

示例2:在产品列表页面实现标签点击切换

除了在网页的顶部导航栏中实现标签点击切换的功能,我们还可以在页面的其他位置使用标签进行切换。

比如,在产品列表页面中,我们可以添加一个标签,点击标签可以切换显示不同的产品类型的产品列表。

<div class="container">
  <ul class="tabs">
    <li class="active">全部</li>
    <li>数码产品</li>
    <li>家居用品</li>
  </ul>
  <ul class="product-list">
    <li>产品1</li>
    <li>产品2</li>
    <li>产品3</li>
    <li>产品4</li>
    <li>产品5</li>
  </ul>
</div>

在CSS中,我们可以为标签样式添加一些动画效果,以及对产品列表进行美化。

.container {
  margin: 20px auto;
}

.tabs {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tabs li {
  cursor: pointer;
  margin-right: 20px;
  padding: 5px 10px;
  border-radius: 5px;
  transition: all 0.3s ease-in;
}

.tabs li.active {
  background-color: #ccc;
}

.product-list {
  list-style: none;
  padding: 0;
  margin: 10px 0 0;
}

.product-list li {
  border: 1px solid #eee;
  padding: 10px;
  margin-bottom: 10px;
  border-radius: 5px;
}

在JS代码中,我们需要使用一个数组来存储不同类型的产品数据,然后在标签点击时,根据标签类型来渲染对应类型的产品列表。

const tabs = document.querySelectorAll('.tabs li')
const productList = document.querySelector('.product-list')
const allProducts = [
  { name: '产品1', type: '数字产品' },
  { name: '产品2', type: '数字产品' },
  { name: '产品3', type: '家居用品' },
  { name: '产品4', type: '家居用品' },
  { name: '产品5', type: '家居用品' },
]

tabs.forEach((tab, index) => {
  tab.addEventListener('click', function() {
    const selectedTab = document.querySelector('.tabs .active')
    selectedTab.classList.remove('active')
    this.classList.add('active')

    const filteredProducts = index === 0 ? allProducts : allProducts.filter(product => product.type === this.textContent)
    renderProducts(filteredProducts)
  })
})

function renderProducts(products) {
  let html = ''
  products.forEach(product => {
    html += `<li>${product.name}</li>`
  })
  productList.innerHTML = html
}

通过以上的步骤,我们就可以在产品列表页面上,添加标签进行切换不同类型的产品列表。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现的简单标签点击切换功能示例 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue组件基础操作介绍

    下面是“Vue组件基础操作介绍”的完整攻略: Vue组件基础操作介绍 什么是Vue组件 组件是Vue.js框架的核心概念之一,是将一个页面拆分成多个小的、独立的模块,每个模块都有自己的数据、行为和样式,可以单独调试和复用。Vue组件可以大大提高代码的可维护性和可读性,减少重复代码的量,加快开发速度。 一个Vue组件通常包含三部分内容: 模板:用于描述组件的结…

    Vue 2023年5月28日
    00
  • vue.js父子组件传参的原理与实现方法 原创

    下面是关于“vue.js父子组件传参的原理与实现方法”的详细攻略: 一、原理 在Vue.js中,父子组件之间的传参可以使用props进行实现。子组件可以通过props接收父组件传递的数据,而父组件则可以动态地改变这些数据,并且这些数据的变化会自动反应到子组件中。 具体而言,实现父子组件间传参的原理是: 父组件向子组件传递数据,需要定义props属性并在子组件…

    Vue 2023年5月27日
    00
  • Vue中.env、.env.development及.env.production文件说明

    在Vue项目中,.env、.env.development及.env.production文件是用来保存环境变量的配置文件。这些文件是通过webpack的DefinePlugin插件实现的,可以实现在不同的环境下加载不同的配置。 .env文件 .env文件是包含在所有环境中的通用配置,process.env对象可以访问它定义的所有变量。比如,我们可以在.en…

    Vue 2023年5月27日
    00
  • 你可能不知道的typescript实用小技巧

    作为 Typescript 常见的使用者,也许你已经对它的一些语法特性熟悉,但是,你可能不知道的 Typescript 实用小技巧可不止这些。接下来我将为你讲解一些不太为人所知的 Typescript 实用小技巧,希望能够对你的开发带来帮助。 1. 类型断言(Type Assertion) 类型断言是一种告诉编译器更确切的类型信息的方式,它可以强制类型检查器…

    Vue 2023年5月28日
    00
  • Springboot-admin整合Quartz实现动态管理定时任务的过程详解

    下面就针对“Springboot-admin整合Quartz实现动态管理定时任务的过程详解”进行详细讲解。 一、背景介绍 在实际的开发过程中,定时任务的使用频率非常高。而对于Spring Boot项目来说,使用Quartz框架来实现定时任务是一种常见的做法。但是,随着业务的不断发展,我们的定时任务往往需要频繁地进行修改和管理,此时我们可以借助Springbo…

    Vue 2023年5月28日
    00
  • Vue3+Vue-cli4项目中使用腾讯滑块验证码的方法

    接下来我将为您讲解Vue3+Vue-cli4项目中使用腾讯滑块验证码的方法。 1. 准备工作 在开始之前,我们需要先在腾讯云验证码控制台中创建一个验证码应用,并获取到相应的App ID和App Secret。 2. 安装SDK 腾讯云提供了针对多个编程语言的SDK,我们可以根据需要选择相应的SDK进行安装。在Vue3+Vue-cli4项目中,我们可以使用we…

    Vue 2023年5月28日
    00
  • Vue简化用户查询/添加功能的实现

    为了实现Vue简化用户查询/添加功能,我们需要以下步骤: 1. 创建Vue实例 在HTML代码中的<script>标签中创建一个Vue实例: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Vue…

    Vue 2023年5月27日
    00
  • Vue实现多标签选择器

    确定需求 首先,我们需要明确自己的需求,即实现一个多标签选择器,让用户能够方便地选择多个标签进行操作。在确定需求的时候,我们需要考虑如下问题: 该多标签选择器需要支持哪些操作,比如添加标签、删除标签、清空标签等等。 该多标签选择器是否需要支持搜索,用户可以搜索标签进行选择。 多标签选择器的样式应该如何设计,方便用户使用。 在确认好需求之后,我们就可以着手开始…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部