JavaScript中的tab栏切换制作(排他思想)

news/2024/11/15 15:00:40/

文章目录

  • 实现效果图
  • 排他思想
  • tab栏切换制作思路
  • 代码部分

实现效果图

整个页面分为2个部分,tab_list部分(上半部分)和tab_con部分(下半部分)
tab_list部分包含5个li,它们分别与tab_con部分的5个div盒子一一对应
tab_list部分只有点击才会有红色背景样式,如果点击了规格与包装,那么商品介绍的样式会被清空。同时,tab_con部分的显示内容跟随tab_list部分的点击发生改变
在这里插入图片描述

排他思想

1.所有元素全部清除样式
2.给当前元素设置样式
3.注意顺序不能颠倒,首先干掉其他人,再设置自己

tab栏切换制作思路

1.模块选项卡,点击某一个,当前这一底色会是红色,其余不变(排他思想)修改类名的方式
2.下面的模块内容,会随着上面的选项卡变化,所以下面模块变化写到点击事件里面
3.规律:下面的模块显示内容和上面的选项卡一一对应相匹配
4.核心思路:给上面的tab_list里面的所有li添加自定义属性,属性值从0开始编号
5.当我们点击tab_list里面的某个li,让tab_con里面的对应序号内容显示,其余隐藏(排他思想)

代码部分

html部分

<div class="tab_list"><ul><li class="current">商品介绍</li><li>规格与包装</li><li>售后保障</li><li>商品评价(50000</li><li>手机社区</li></ul>
</div>
<div class="tab_con"><div class="item" style="display: block;">商品介绍模块内容</div><div class="item">规格与包装模块内容</div><div class="item">售后保障模块内容</div><div class="item">商品评价模块内容</div><div class="item">手机社区模块内容</div></div>

js部分

<!-- js部分 --><script>// 1.实现tab栏的上半部分的切换,点击哪个选项卡,这个选项卡样式发生改变,点击其他选项卡,该选项卡样式变回原样// 采用排他思想// 2.实现tab栏的下半部分切换,点击上面的选项卡,其下标所对应的下半部分div则显示出来// 1.获取元素var tab_list = document.querySelector('.tab_list');var lis = tab_list.querySelectorAll('li');var items = document.querySelectorAll('.item');// 2.for循环绑定点击事件for(var i=0; i<lis.length;i++){// 开始给5个li设置下标lis[i].setAttribute('index',i);lis[i].onclick = function(){// 干掉所有人,其余的li清除class这个类for(var i=0;i<lis.length;i++){lis[i].className='';}// 留下我自己this.className='current';// 下面的显示内容模块var index = this.getAttribute('index');// 干掉所有人,让其余的item这些div隐藏for(var i=0; i<items.length;i++){items[i].style.display='none';}// 留下我自己items[index].style.display='block';}}</script>

http://www.ppmy.cn/news/84901.html

相关文章

【构造】0517Binary String Sorting

Codeforces 1809D 题意&#xff1a; 构造一个长度为 n n n 的字符串 s s s &#xff0c;均为小写字母。 给出 k k k 个要求&#xff0c;第 i 个要求为 x i , c i {x_i, c_i} xi​,ci​&#xff0c;表示对于 s [ 1 , x i ] s[1, x_i] s[1,xi​] 这个前缀字符串&#xff…

C++ 项目实战:跨平台的文件与视频压缩解压工具的设计与实现

C++实战:跨平台文件与视频压缩解压工具的设计与实现 一、引言(Introduction)1.1 项目背景与目标1.2 技术选型:C++、FFmpeg、libarchive、libzip、QtC++FFmpeglibarchivelibzipQt二、设计思路与框架(Design Philosophy and Framework)2.1 设计思路:从需求到实现2.2 框架选…

图数据库实践 - 如何将图数据库应用于身份与访问管理

导读 目前&#xff0c;随着云计算和大数据的快速发展&#xff0c;身份与访问管理&#xff08;Identity and Access Management&#xff0c;IAM&#xff09;系统变得比以往任何时候都更加重要。因为涉密信息可能在几分钟内就被破解&#xff0c;网络犯罪分子仅需要一个员工账号&…

java spring MVC之RESTful快速开发

我这里有个一springboot项目 我在启动类同目录下创建了一个目录 目录名叫 controller 里面有一个UserController diam结构是这样的 package com.example.threshold.controller;import com.example.threshold.user; import org.springframework.stereotype.Controller; import…

【Flutter 工程】002-代码生成:Freezed ——类似 Java 的 lombok

【Flutter 工程】002-代码生成&#xff1a;Freezed ——类似 Java 的 lombok 文章目录 【Flutter 工程】002-代码生成&#xff1a;Freezed ——类似 Java 的 lombok一、概述1、简介2、主要功能3、主页与使用前后比较主页使用前使用后 二、基本使用1、安装2、改造 main.dart3、创…

言之画: AI绘画平台

【产品介绍】 言之画是出门问问推出的AI绘画平台。支持二次元、蒸汽朋克、插画等 8 种创作风格。用户只需输入文字&#xff0c;「言之画」就能一次性生成 8 张光影逼真、细节丰富的 2K 高分辨率图像。 除了以文生图&#xff0c;它还拥有以图生图、动图生成、个性头像生成等 AI …

有意思的CVE-2022-0337复现

前言 前两天在刷tw&#xff0c;看到了个比较有意思的一个CVE漏洞&#xff0c;价值奖励是10000美&#x1f52a;&#xff0c;比较好奇的是价值10000美&#x1f52a;的漏洞是什么样子的[苦涩]&#xff0c;漏洞利用就是需要在浏览器中进行用户交互才能触发该漏洞&#xff0c;但由于…

一文揭秘高效稳定的 Apache Doris 内存管理机制

作者&#xff1a;SelectDB 高级研发工程师、Apache Doris Committer 邹新一 背景 Apache Doris 作为基于 MPP 架构的 OLAP 数据库&#xff0c;数据从磁盘加载到内存后&#xff0c;会在算子间流式传递并计算&#xff0c;在内存中存储计算的中间结果&#xff0c;这种方式减少了频…