在开始写我们的选项卡之前,先来看一下最终实现的大概效果:

那废话不多说,接下来就看看如何去实现这个效果。

首先,利用我们的 html 和 css 基础,写出选项卡的基本布局:

html代码:

<div class="news"><ul><li class="active">标题1</li><li>标题2</li><li>标题3</li></ul><ol><li class="active">内容1</li><li>内容2</li><li>内容3</li></ol>
</div>

css样式:

body,div,ul,ol,li{margin: 0;padding: 0;list-style: none;
}
body{position: relative;
}
.news{width: 500px;height: 500px;position: absolute;left: 50vw;top: 50vh;transform: translate(-50%,-50%);display: flex;flex-direction: column;
}
.news ul{width: 100%;display: flex;
}
.news ul li{flex-grow: 1;border: solid black 1px;background-color: #b2b2b3;font-size: 30px;height: 80px;text-align: center;line-height: 80px;cursor: pointer;
}
.news ol{flex-grow: 1;position: relative;
}
.news ol li{width: 100%;height: 100%;font-size: 100px;display: none;justify-content: center;align-items: center;position: absolute;top: 0;left: 0;
}
.news ol li:nth-of-type(1){background-color: #00a0ff;
}
.news ol li:nth-of-type(2){background-color: #f15a23;
}
.news ol li:nth-of-type(3){background-color: #f5a2c0;
}
.news ul li.active{background-color: #fff;border-bottom-color: #fff;
}
.news ol li.active{display: flex;
}

接下来引入JavaScript代码,实现动态切换效果:

var title = document.querySelectorAll('ul li');
var content = document.querySelectorAll('ol li');title.forEach(function (item,key) {item.onclick = function () {title.forEach(function (i,k) {i.className = '';content[k].className = '';});item.className = 'active';content[key].className = 'active';}
})

这里我们使用两个 forEach 对获得的 li 标签的伪数组进行循环遍历,在点击事件内首先将两个列表中的li标签的 class 名全部清空,然后点击那个标签给哪个标签加上 class 名,并绑定对应的内容li。

当然,这里我们做的是点击事件,就是点击切换选项卡,也可以改为鼠标移入事件,就是鼠标移到标题的 li 标签上时自动切换,这里只需改变 js 代码中的事件:

// 这样我们就把点击事件改为鼠标移入事件了
item.onclick    =>    item.onmouseover

虽然样式做了一大堆花里胡哨的,但是关键还是在这短短几行 js 代码中,怎么样,是不是很容易就实现 选项卡的效果了:)

如何利用js实现选项卡效果(超简单)相关推荐

  1. js实现雪花效果(超简单)

    打个广告,最底下的公众号,可以每天领外卖红包.打车优惠券还有96折充值电费等,需要的可以关注一下哦 使用js实现雪花飘落效果,话不多说直接上代码 <!DOCTYPE html> <h ...

  2. 如何利用js制作选项卡

    今天周一,国庆收假回来工作的第一天.跟假期综合症说拜拜吧!打起精神来干活--- 今天要跟大家分享的是如何利用js制作选项卡,选项卡在各种类型的网站都有大量的使用,选项卡就是通过一个标题点击显示对应的内 ...

  3. 如何利用js实现萤火虫效果

    如何利用js实现萤火虫效果 前言 首先分析萤火虫需要的步骤 2.1随机数函数 2.3获取dom和生成随机坐标 2.3创建生成div 3.我们就可以先创建出这个实例 4.最后就是带入我们封装的move缓 ...

  4. dw在php图片滑动切换效果,超简单的图片左右切换滑动

    网上看过很多图片左右切换滑动的效果,不过大都是使用插件实现.插件虽方便,但是对于新手的学习并不是最好的.本文使用jquery这个由原生的JavaScript封装的库,用最简短的代码实现此功能 效果预览 ...

  5. JS——如何利用js实现流星雨效果?

    文章目录 前言 一.成果图 二.实现步骤 1.html结构 2.css样式 3.js行为 总结 前言 一起来看流星雨啊,没有流星雨?那我们就自己画一个,会动的那种哦,还有闪烁的星星哦~ 一.成果图 二 ...

  6. 利用JS弹出层实现简单的动态提示“正在加载中,请稍等...

    最近项目中大量用到了JQuery中的Ajax异步加载数据,数据量非常大,导致每次加载的时候都感觉到非常非常慢,让客户体验非常不好,就想到用JS做一个简单的提示. JQuery版本:1.7.1: 编写一 ...

  7. 利用JS弹出层实现简单的动态提示“正在加载中,请稍等...”

    JQuery版本:1.7.1: 编写一个JS类(ck.layer.js): [javascript] view plaincopy /********************************* ...

  8. 关于js实现分页效果的简单代码

    <!DOCTYPE html> <html><head><meta charset="utf-8" /><title>j ...

  9. 批处理 操作mysql_超简单使用批处理(batch)操作数据库

    超简单使用批处理(batch)操作数据库 批处理(batch)是什么 批处理的执行就好比快递员的工作: 未使用批处理的时候,快递员一次从分发点将一件快递发给客户: 使用批处理,则是快递员将所有要派送的 ...

最新文章

  1. OTA升级flash分区
  2. 常数据成员 ,常函数
  3. 停止了IIS服务为什么apache还是启动不了呢?
  4. SAP Cloud Application Programming CDS 模型间 association 的设置
  5. 圆锥曲线万能弦长公式_2020高考数学50条秒杀型公式与方法
  6. 64位百度云 catia v6_福利缩水:百度网盘决定收回部分储存空间
  7. 第 7 章 排序算法
  8. Groovy 设计模式 -- null对象模式
  9. php js attr,php如何像js一样解析DOM?
  10. 重装系统数据恢复工具
  11. python计算复数模_python 模拟casio复数计算器【施工中】
  12. Mybatis(三)动态SQL
  13. python用保留字while实现无限循环_Python中无限循环需要什么条件
  14. win10计算机亮度在哪里调,win10电脑怎么调亮度
  15. TPM分析笔记(一) TPM历史
  16. .NET MVC 后台接受base64的上传图片
  17. Mac出现异常,如何在M1或Intel Mac上重置NVRAM
  18. SSCOM串口助手对于接收到的中文编码字符串的兼容性测试
  19. 【综合评价分析】熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列
  20. 如何在线倍速播放存储在百度网盘的视频?偷偷告诉你一个巧妙的简易方法!

热门文章

  1. C语言 转换10进制为16进制
  2. 首届中国IT架构大师高峰论坛
  3. 水龙头发出呜呜声的解决方法
  4. 缺点 霍夫圆_霍夫线变换,霍夫圆变换
  5. Android面试笔记之事件分发机制
  6. java五家共井问题,水工建筑物简答题及答案
  7. 日记侠:高端卖茶人的朋友圈生意经
  8. C语言练习——回文素数
  9. 粒子群算法(PSO)的C++实现
  10. 连接mysql时报错:The driver has not received any packets from the server.