js-tab选项卡

发布时间 - 2026-01-10 23:03:27    点击率:

说道tab选项卡,顾名思义,就是切换不同内容分类,想必学过前端的都知道,tab有很多方法可以实现,最近刚跟师傅学了一种,感觉很简便,很实用哦。

一、先看一下结果

二、可以根据图来布局,首先上面标签和下面内容,

需要注意的是点击上面a标签的链接和下面div的id一一对应起来,

三、就是最重要的js部分了。

这个地方可以分几个阶段去思考

1.首先得有事件去触发点击

2.获取与内容对应a标签的href,这样就可以对下面进行显示或隐藏,

3.通过唯一的class  -->  active   来切换你想要的内容

四、加上css,这样就差不多完成了

这里根据需求自己定吧,重点在js

五、这样一个简单的小程序差不多就完成了。但是自己写的代码得负责到底,所以测试也是相当重要的,

1.首先,点击的选项会有偏差,所以我们要适当的加些判断,只有点击A标签的时候才能触发

注意:tagName 一定要大写    比如:A  标签   

2.还有一个地方需要优化,你会发现,现在在第一个标签上,如果在点击当前的,程序还会执行一遍,虽然你看不到,所一这个最好优化一下

点击的时候先判断一下就好啦。

下面附上我的源码,希望大家一起学习。请大家多多指教,随时留言回复,

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  <title>tab选项卡</title>
  <style type="text/css">
   *{
    font-family: simhei;
   }
   .tab-group{
    padding: 1em 0em;
   }
   .tab-group>a{
    padding: 1em 2em;
    color: #666;
    text-decoration: none;
   }
   .tab-group>.active{
    padding: 1em 2em;
    background: #999;
    color: #fff;
   }
   .content-group{
    width: 31.7%;
    height: 10em;
    background: #999;
    color: #fff;
   }
   .content-group>.content-item{
    display: none;
   }
   .content-group>.active{
    display: inline-block;
   }
  </style>
 </head>
 <body>
  <nav class="tab-group">
   <a href="item01" rel="external nofollow" class="tab-item active">电脑</a>
   <a href="item02" rel="external nofollow" class="tab-item">手机</a>
   <a href="item03" rel="external nofollow" class="tab-item">平板</a>
  </nav>
  <div class="content-group">
   <div class="content-item active" id="item01">联想</div>
   <div class="content-item" id="item02">小米</div>
   <div class="content-item" id="item03">苹果</div>
  </div>
 </body>
</html>
<script type="text/javascript">
 document.querySelector(".tab-group").addEventListener('click',function(event){
  var target = event.target;
  //点击选项
  if(target.tagName === 'A' && ~target.className.indexOf('tab-item')){
   event.preventDefault();
    
   if(~target.className.indexOf('active')){
    return;
   }
   var href = target.getAttribute('href');//获取点击的目标标志
   //TODO 切换选项
   var activeTab = document.querySelector(".tab-group>.active");
   activeTab.className = activeTab.className.replace(' active', '');
   target.className = target.className + ' ' + "active";
   //TODO 选项对应的内容切换
   var activeContent = document.querySelector('.content-group>.active');
   activeContent.classList.remove('active');
   var contentElem = document.getElementById(href);
   contentElem.classList.add("active");
  }
 },false);
</script>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # tab选项卡  # Vue.js tab实现选项卡切换  # 使用vue.js写一个tab选项卡效果  # js鼠标经过tab选项卡时实现切换延迟  # 完美实现js选项卡切换效果(二)  # Vue.js组件tab实现选项卡切换  # 原生js实现选项卡功能  # JS实现的tab切换选项卡效果示例  # JS使用面向对象技术实现的tab选项卡效果示例  # js实现简单的选项卡效果  # js编写选项卡效果  # 选项卡  # 的是  # 完成了  # 几个  # 会有  # 第一个  # 有很多  # 还会  # 最重要  # 不多  # 你看  # 一遍  # 这样一个  # 还有一个  # 就可  # 可以实现  # 顾名思义  # 大家一起  # 可以根据  # 好啦 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高端网站建设与定制开发一站式解决方案 中企动力  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  iOS发送验证码倒计时应用  如何在阿里云购买域名并搭建网站?  iOS验证手机号的正则表达式  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  教你用AI润色文章,让你的文字表达更专业  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  如何在阿里云高效完成企业建站全流程?  如何在建站主机中优化服务器配置?  用v-html解决Vue.js渲染中html标签不被解析的问题  javascript日期怎么处理_如何格式化输出  如何在服务器上三步完成建站并提升流量?  高端建站三要素:定制模板、企业官网与响应式设计优化  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  浅析上传头像示例及其注意事项  如何在阿里云通过域名搭建网站?  昵图网官网入口 昵图网素材平台官方入口  Laravel如何配置Horizon来管理队列?(安装和使用)  轻松掌握MySQL函数中的last_insert_id()  如何用已有域名快速搭建网站?  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何获取上海专业网站定制建站电话?  JavaScript Ajax实现异步通信  Laravel如何使用查询构建器?(Query Builder高级用法)  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  javascript读取文本节点方法小结  如何在万网利用已有域名快速建站?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  公司网站制作需要多少钱,找人做公司网站需要多少钱?  晋江文学城电脑版官网 晋江文学城网页版直接进入  Android滚轮选择时间控件使用详解  制作公司内部网站有哪些,内网如何建网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  Python文件流缓冲机制_IO性能解析【教程】  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Java解压缩zip - 解压缩多个文件或文件夹实例  非常酷的网站设计制作软件,酷培ai教育官方网站?  在线制作视频网站免费,都有哪些好的动漫网站?  Laravel如何生成URL和重定向?(路由助手函数)  如何快速完成中国万网建站详细流程?