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

yizhihongxing

首先来讲一下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中保存数据到磁盘文件的方法。 使用axios向后端发送请求保存数据 在Vue中,我们可以借助axios实现向后端发送请求保存数据的操作。具体步骤如下: 引入axios <script src="https://cdn.jsde…

    Vue 2023年5月28日
    00
  • vue如何实时往数组里追加数据

    当我们需要在 Vue 中实时往数组里追加数据时,有以下几种方法可供选择: 1. 使用 push() 方法 Vue 的数据双向绑定机制,使得当数组发生变更时,页面会自动更新渲染。因此,使用 JavaScript 原生的 push() 方法向数组中追加数据就可以实现实时更新视图的效果。这个方法会接收待添加的数据,把它添加到数组的最后位置。示例代码如下: <…

    Vue 2023年5月27日
    00
  • webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)

    下面是详细讲解“webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)”的完整攻略。 问题背景 当我们使用webpack打包vue项目时,生成的js、css、图片等静态资源文件可能会存在404的问题,这是由于打包后资源文件的路径问题所导致的。 具体解决步骤 接下来,介绍具体的解决步骤,包括以下几个方面: 步骤1:检查public…

    Vue 2023年5月28日
    00
  • vue3缓存页面keep-alive及路由统一处理详解

    Vue3缓存页面keep-alive及路由统一处理详解 简介 在Vue3中,使用keep-alive组件可以缓存页面,使得在切换页面的时候不需要重复渲染已有的页面元素,从而提高页面性能和用户体验。同时,使用路由统一处理可以更好地管理页面路由及其对应的组件,使得页面结构更加清晰,维护起来也更加方便。 实现 keep-alive 方法 使用keep-alive组…

    Vue 2023年5月28日
    00
  • Vue如何提升首屏加载速度实例解析

    Vue如何提升首屏加载速度实例解析 前言: Vue 是一个非常流行的前端框架,但默认情况下,Vue 的首屏加载速度可能会比较缓慢。为了解决这个问题,我们需要采用一些技术来提升 Vue 应用的性能,本文将介绍一些方法。 懒加载组件(Lazy Loading) 懒加载组件是 Vue 的一种优化方式,它可以将一部分组件延迟加载,这样可以减少首屏所需要加载的文件数量…

    Vue 2023年5月27日
    00
  • Vue3使用hooks函数实现代码复用详解

    Vue3是当前最流行的前端框架之一,它的hooks函数在代码复用方面提供了很多便利。本攻略将详细讲解如何使用Vue3的hooks函数来实现代码复用。 一、Vue3的hooks函数简介 Vue3的hooks函数是指一组函数,它们的作用是在Vue3组件的不同生命周期中完成各种操作。Vue3中常用的hooks函数有: setup:在组件创建之前执行,用于设置pro…

    Vue 2023年5月28日
    00
  • JS三级可折叠菜单实现方法

    JS三级可折叠菜单是一种常见的页面交互效果,下面提供一种实现方法。 实现方法 1. HTML结构 首先,需要在HTML结构中定义菜单所需要的层级结构,示例代码如下: <ul id="menu"> <li> <a href="#">一级菜单1</a> <ul> …

    Vue 2023年5月28日
    00
  • Vue组件之极简的地址选择器的实现

    首先我们需要了解一下Vue组件的基本知识。 什么是Vue组件? Vue 组件是可复用的 Vue 实例,拥有自己的视图和行为。在 Vue 中,组件是基本的代码复用单元,一个页面可以由多个小的组件组成,每个组件封装了自己的代码和模板,可以单独的进行开发、测试和维护。 Vue组件的基本结构 一个 Vue 组件通常由模板、样式和逻辑组成。模板是组件的显示部分,样式是…

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