JS如何实现多重选项卡切换轮播图
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章将为大家详细讲解有关JS如何实现多重选项卡切换轮播图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。轮播图简介:在一个网站的某一特定模块,通过电脑上鼠标点击或
千家信息网最后更新 2025年02月07日JS如何实现多重选项卡切换轮播图
这篇文章将为大家详细讲解有关JS如何实现多重选项卡切换轮播图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
轮播图简介:在一个网站的某一特定模块,通过电脑上鼠标点击或鼠标移入、手机上手指滑动后,可以分别展示不同的图片,这个模块就叫做轮播模块。
html布局部分:
CSS样式部分:
/* 为了布局方便,容器里大多采用的flex */#box { position: relative; width: 460px; height: 300px; margin: 40px auto; border: 1px solid rgb(109, 98, 98); user-select: none; } /* 侧边栏布局 */ .leftbar { display: flex; flex-direction: column; justify-content: space-between; position: absolute; top: -1px; left: -80px; width: 80px; height: 100%; text-align: center; font-size: 20px; cursor: pointer; } .leftbar div { flex: 1; line-height: 100px; background-color: cadetblue; letter-spacing: 5px; } .leftbar div:nth-child(2) { border-top: 1px solid #fff; border-bottom: 1px solid #fff; } /* 底部切换按钮样式设计 */ .bottombar { display: flex; justify-content: space-between; position: absolute; bottom: -1px; right: -1px; z-index: 10; width: 200px; height: 30px; cursor: pointer; } .bottombar div { flex: 1; line-height: 30px; background-color: rgb(232, 233, 235, .5); text-align: center; font-weight: 700; } .bottombar div~div { border-left: 1px solid grey; } img { position: absolute; display: block; width: 460px; height: 300px; } .show { z-index: 5; } .leftbar .checked, .bottombar .checked { background-color: rgb(241, 5, 5); }
javascript逻辑实现部分:
var Box = document.querySelector('#box'), pic = Box.querySelectorAll('.pic'), Idx = 0, index = 0, timer = null, ltDiv = Box.querySelector('.leftbar'), btDiv = Box.querySelector('.bottombar'), Img = Box.querySelectorAll('img'); function createBtBar(len) {//动态创建底部切换按钮 var str = ''; for (var i = 0; i < len; i++) { str += `${i + 1}`; } btDiv[xss_clean] = str; btDiv.children[0].classList.add('checked'); } function initialize() {//页面初始状态 createBtBar(pic[0].children.length); } initialize(); function clearZindex() {//重置所有图片的定位层级 for (var k = 0; k < Img.length; k++) { Img[k].classList.remove('show'); } } ltDiv.addEventListener('click', (e) => {//侧边栏项目切换 if (e.target.tagName.toLowerCase() === 'div') { for (var j = 0; j < ltDiv.children.length; j++) { ltDiv.children[j].classList.remove('checked'); } clearZindex(); Idx = 0; index = getEleIdx(e.target); ltDiv.children[index].classList.add('checked'); pic[index].children[0].classList.add('show'); createBtBar(pic[index].children.length); } }); btDiv.addEventListener('click', (e) => {//委托监听底部切换按钮 if (e.target.tagName.toLowerCase() === 'div') { function changePic(callback) { btDiv.children[Idx].classList.remove('checked'); clearZindex(); callback && callback(); btDiv.children[Idx].classList.add('checked'); pic[index].children[Idx].classList.add('show'); } changePic(function () { Idx = getEleIdx(e.target); }); } }); function getEleIdx(item) {//获取DOM元素下标 var elements = item[xss_clean].children; for (var i = 0, len = elements.length; i < len; i++) { if (item === elements[i]) { return i; } } } function loopShow() {//循环自动展示 clearInterval(timer); timer = setInterval(function () { pic[index].children[Idx].classList.remove('show'); btDiv.children[Idx].classList.remove('checked'); Idx += 1; if (Idx < 0 || Idx > pic[index].children.length - 1) { Idx = 0; } pic[index].children[Idx].classList.add('show'); btDiv.children[Idx].classList.add('checked'); }, 1000); } loopShow(); Box.addEventListener('mouseover', function () { clearInterval(timer);//鼠标移入展示区停止轮播 }); Box.addEventListener('mouseout', function () { loopShow();//鼠标移出展示区自动轮播 });
具体实现的展示效果入下:
关于"JS如何实现多重选项卡切换轮播图"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
切换
鼠标
布局
底部
按钮
模块
篇文章
部分
侧边
图片
展示区
更多
样式
不同
不错
实用
下标
元素
内容
动态
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州荔支网络技术怎么样
数据库常见慢查询
支付宝账户管理服务器
下列哪个不是常见的服务器系统
服务器1g防护
是否应该把注意力给网络安全
安徽网络技术咨询怎么样
sql数据库找不到对象
农行软件开发中心社招待遇
杭州大数据软件开发定制
软件开发有关公司有哪些
网络安全专业哪个大学最好
网络安全产业统计报告全文
锡山区创新网络技术创造辉煌
五华区创新软件开发市场价
tnt网络安全
学生网络安全警示片
白月光小说软件开发
互联网最美的高科技风景图高清
宇智融创互联网科技有限公司
外卖软件开发注意事项
2k21服务器早上都能用
软件开发企业进项税加计扣除
服务器第一80的称号
查号软件开发
网络安全研判分析报告
什么是网络数据服务器搭建
上海银行网络安全宣传视频
软件开发工作室的基本设施
软件开发公司创业初心