一、主要功能介绍:

1、写UI结构

2、获取元素

3、for循环遍历数组,给每一个li添加一个index属性并赋值。(原因等会会总结)

4、绑定鼠标的mousemove事件,鼠标移到某个模块,将该模块变色,换上相应的图片

5、当鼠标离开li的时候,就让当前li的背景颜色改变为原来的颜色,图片隐藏

6、鼠标离开ul的时候,将li模块和图片恢复到刚开始的样子

7、主要实现tab栏的来回切换操作

原生JS好,前端学的才是真的好,对以后的发展有很大的作用

二、详细步骤解析:

HTML和CSS代码:

简单写html和css的代码,样式如下:

<style>* {margin: 0;padding: 0;}.main {width: 350px;margin: 0 auto;}.container {padding-top: 10px;width: 600px;height: 60px;font-size: 0;}.container li {width: 150px;height: 60px;display: inline-block;text-align: center;line-height: 60px;background-color: #eee;list-style: none;font-size: 20px;}.container li:nth-child(1) {background-color: orange;}.box {margin-top: 40px;width: 600px;height: 400px;background-size: cover;}.box img {display: none;width: 100%;height: 100%;}.box img:nth-child(1) {display: block;}</style>
</head><body><div class="main"><ul class="container"><li>大橘</li><li>汪汪</li><li>库库</li><li>斑点</li></ul><div class="box"><img src="1.jpg" alt=""><img src="2.jpg" alt=""><img src="3.jpg" alt=""><img src="4.jpg" alt=""></div>

JS代码:

主要步骤:

1、获取元素

2、for循环遍历数组,给每一个li添加一个index属性并赋值。(原因等会会总结)

3、绑定鼠标的mousemove事件,鼠标移到某个模块,将该模块变色,换上相应的图片

4、当鼠标离开li的时候,就让当前li的背景颜色改变为原来的颜色,图片隐藏

5、鼠标离开ul的时候,将li模块和图片恢复到刚开始的样子

6、主要实现tab栏的来回切换操作

 <script>var lis = document.querySelectorAll("ul li");var imgs = document.querySelectorAll(".box img");var container = document.querySelector(".container");let flag = 0;// 当鼠标移入某个li的时候,就将该li的背景颜色改变for (let i = 0; i < lis.length; i++) {// 在进行for循环的时候,给每一个li的index属性赋值lis[i].index = i;lis[i].onmouseover = function() {// for循环,每次都将图片清空for (let j = 0; j < imgs.length; j++) {imgs[j].style.display = "none";}this.style.backgroundColor = "orange";imgs[this.index].style.display = "block";if (this.index == 0) {flag = 1} else {falg = 0}}// 当鼠标离开li的时候,就让当前li的背景颜色改变为原来的颜色,图片隐藏lis[i].onmouseout = function() {this.style.backgroundColor = "#eee";imgs[this.index].style.display = "none"}}// 当鼠标离开ul的时候,让li的第一个变成orange,图片变成第一张图片container.onmouseleave = function() {lis[0].style.backgroundColor = "orange"imgs[0].style.display = "block"flag = 0}container.onmouseenter = function() {if (flag) {lis[0].style.backgroundColor = "orange"} else {lis[0].style.backgroundColor = "#eee";}}</script>

感谢:@爱吃鱼的猫

原生JS项目练习——tab选项卡功能相关推荐

  1. 原生js、jQuery实现选项卡功能

    在大家在网上平常浏览网页的时候,想必各位都会看到选项卡功能,在这里给大家详解一下用原生js.jQuery如何来写一些基本的选项卡 话不多说,先给各位看一下功能图:              好了,下边 ...

  2. 基于原生JS项目使用Vue3 + Surely Vue Table组件

    Js & Surely Vue Table 本文主要说明,基于原生JS项目如何使用Surely Vue Table组件. Surely Vue Surely Vue Table 是 Ant D ...

  3. 同一页面实现多个Tab选项卡功能

    同一页面实现多个TAB选项卡功能 下载地址: http://down.51cto.com/data/988585 本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/x ...

  4. js html转盘点名,原生JS实现简易随机点名功能

    定时器的工作原理,这里将用引用How JavaScript Timers Work中的例子来解释定时器的工作原理,该图为一个简单版的原理图.· 上图中,左侧数字代表时间,单位毫秒:左侧文字代表某一个操 ...

  5. android 自定义多tab悬浮控件,Android编程实现自定义Tab选项卡功能示例

    本文实例讲述了Android编程实现自定义Tab选项卡功能.分享给大家供大家参考,具体如下: import android.app.TabActivity; import android.conten ...

  6. 使用JS实现简单的选项卡功能

    首先我们来写HTML代码,构建出整体结构  代码如下: <!--导航栏部分HTML代码--> <nav id="nav"><ul><li ...

  7. 原生JS项目练习——全选与全不选和反选

    目录 一.主要功能介绍: 二.JS代码详细步骤解析: JS代码: 三.全部代码: 感谢:@有鱼是只猫提供的视频 一.主要功能介绍: 1.用原生JS实现全选:用for循环遍历每一个input,让他全部选 ...

  8. js购物车功能php,实战项目:用原生JS实现一个购物车的功能

    实战:购物车功能 一.两个实用的数组函数 1.1 Array.every() every()方法传入回调函数,这个回调函数有三个参数,分别是: item:用于测试的当前值: index:当前测试值的索 ...

  9. 原生js实现图片上传功能

    在项目中用到了原生的上传功能,html5代码如下 <div class="uploadimg"><div v-for="(item, index) in ...

最新文章

  1. 微软MCITP系列课程
  2. 搜索引擎, 请手下留情
  3. hdu 1867 求两个串的和最小 ,KMP
  4. 构建之法4、17章观后感
  5. GO语言实现RSA 加密和解密的实现
  6. redis常用命令getex_Redis常用命令(key、string、List)
  7. 宝塔php gd库,宝塔面板安装 EasyImag – 一款最简单图床的安装体验
  8. infor wms 项目启动_派诺科技数字工厂MES/WMS系统项目正式启动
  9. Hudson Jenkins 文档一篇[转记]
  10. (Ios 实战) 自定义UITableView
  11. 机器学习数学基础--偏导数
  12. 如何位图转换矢量图或者数字油画底稿
  13. ctfmon是什么启动项_Win7启动项找不到ctfmon进程无法正常使用输入法的解决方法...
  14. 低代码平台开发 python_低组词_低的多音字组词,低是多音字吗,低组词有哪些
  15. CAN详解--协议详解
  16. SQL Server 2008 R2每天自动备份数据库
  17. 牛顿迭代法求一元三次方程c语言,C++一元三次方程求解算法 - 小众知识
  18. 怎样批量给pdf文件添加水印?
  19. 读取ntfs的usn
  20. 华为AR1220路由器配置GRE隧道

热门文章

  1. (883C语言)西安建筑科技大学考研专业课全程复习高分指南
  2. Bootstrap-table formatter
  3. 利用PowerDesigner反向生成DB设计文档
  4. Fake3D Depth Map Cocos Creator Shader
  5. STM32选型手册及命名规则
  6. 网络安全实验一 Part 2 Windows环境下的扫描器程序
  7. 【ACO TSP】基于matlab GUI蚁群算法求解旅行商问题【含Matlab源码 1032期】
  8. vos 3000 话单分析
  9. [转]你想一辈子缩在角落里还是为梦想不顾一切?
  10. 打开VMware虚拟机报错VMware Workstation 与 Device/Credential Guard 不兼容