JavaScript 实现轮播图功能
自动轮播图片按照设定的时间间隔自动切换实现循环播放。箭头控制用户可以通过点击左右箭头手动切换图片控制轮播的方向。小圆点指示在轮播图下方显示小圆点指示当前显示的图片位置鼠标交互当鼠标悬停在轮播图上时自动轮播暂停鼠标移开后自动轮播恢复。HTML 结构div classbanner_box onmouseoverhover() onmouseouthoverout()div classbanner_arrowsimg src./img/箭头左.png classleft alt onclickleft()/img src./img/箭头右.png classright alt onclickright()//divdiv classbanner_img/divdiv classbanner_dot/div/divscript srcjs/banner.js/scriptAI写代码html这段 HTML 代码构建了轮播图的基本结构。banner_box是轮播图的容器banner_arrows包含左右箭头图片banner_img用于展示轮播的图片banner_dot则是放置小圆点的区域。同时通过onmouseover和onmouseout事件绑定了鼠标悬停和移开的函数。css样式*{margin: 0;padding: 0;}.banner_box{position: relative;width: 48%;margin-left: 20%;margin-top: 5%;background-color: aqua;overflow: hidden;}.banner_arrows {width: 100%;height: 300px;position: absolute;z-index: 5;display: flex;justify-content: space-between;align-items: center}.banner_arrows img {width: 8%;height: 15%;cursor: pointer;/* 当鼠标悬停在图片上时显示小手 */}.banner_img{width: 100%;height: 300px;display: flex;}.banner_img img{width: 100%;height: 300px;float: left;}.banner_dot{position: absolute;/* background-color: brown; */width: 25%;height: 50px;bottom: 0px;left: 40%;}span{background-color: pink;float: left;display: block;width: 30px;height: 30px;margin-left: 5px;border-radius: 50%;}AI写代码cssCSS 样式主要用于设置轮播图的布局和外观。banner_box设置为相对定位并设置了宽度、边距和背景颜色同时overflow: hidden确保超出容器的图片部分不会显示。banner_arrows是绝对定位位于轮播图上方包含左右箭头图片并设置了箭头的样式和鼠标悬停效果。banner_img使用display: flex来排列图片banner_dot用于放置小圆点设置了小圆点的样式和位置。js逻辑let body document.getElementsByClassName(banner_img)[0];let round document.getElementsByClassName(banner_dot)[0];let bot document.getElementsByTagName(span);// 定时器let inter;// 数据let data;// 下标let index 0;// 生成一个 XMLHttpRequest 对象let xhr new XMLHttpRequest();// open请求类型是get请求地址文件位置写的是json文件请求方式是true。表示是异步xhr.open(get, js/banner.json, true);// 接着发送请求xhr.send();// 该方法可以定义响应执行函数当 readyState 属性发// 生变化时会自动调用该方法。xhr.onreadystatechange function() {// ready是交互流程。5个阶段if判断中意思是// 交互流程是否达到第五个阶段并且状态等于200请求成功if (xhr.readyState 4 xhr.status 200) {// 响应文本返回的数据let text xhr.responseText;// 把返回的json数据转换并赋值到data变量data JSON.parse(text);console.log(data);index 0;reader();bot[index].style.backgroundColor red;inter setInterval(auto, 2000);}};// 渲染函数function reader() {let str ;for (let i 0; i data.length; i) {str img src${data[i]} alt /;}str img src${data[0]} alt /;console.log(str);let strs ;for (let i 0; i data.length; i) {strs span/span;}round.innerHTML strs;body.innerHTML str;}// 自动轮播function auto() {index;body.style.transition all 1s;body.style.marginLeft -index * 100 %;// console.log(index);// bot[ bot.length-1].style.backgroundColor pinkconsole.log(index, data.length);if (index data.length) {index 0;setTimeout(function() {body.style.marginLeft -index * 100 %;body.style.transition none;}, 1000)bot[0].style.backgroundColor red;bot[bot.length - 1].style.backgroundColor pink;} else {bot[index].style.backgroundColor red;bot[index - 1].style.backgroundColor pink;}}// 鼠标放置到轮播图上时// 清除定时器function hover() {clearInterval(inter);}// 鼠标移开时// 重新设置定时器function hoverout() {inter setInterval(auto, 2000);}// 右箭头function right() {auto();document.getElementsByClassName(right)[0].onclick null;setTimeout(function() {document.getElementsByClassName(right)[0].onclick right;}, 1000);}// 左箭头function left() {document.getElementsByClassName(left)[0].onclick null;// 首先判断图片下标是否为0if (index 0) {// 如果为0那就让下标等于图片的长度最后一张index data.length;// 并将图片切换到最后一张过渡为nonebody.style.transition none;body.style.marginLeft -(data.length) * 100 %;}// 然后设一个一次性的定时器时间短一些setTimeout(function() {// 下标--index--;body.style.transition all 1s;body.style.marginLeft -index * 100 %;// console.log(index);bot[0].style.backgroundColor pinkconsole.log(index, data.length);if (index data.length - 1) {bot[index].style.backgroundColor red;bot[0].style.backgroundColor pink;} else {bot[index].style.backgroundColor red;bot[index 1].style.backgroundColor pink;}}, 10);setTimeout(function() {document.getElementsByClassName(left)[0].onclick left;}, 1000);}AI写代码javascript运行代码解释数据从js/banner.json文件中获取图片数据并将其解析为 JavaScript 对象。获取数据成功后调用reader函数渲染轮播图并设置初始的小圆点样式和启动自动轮播定时器。渲染函数reader遍历图片数据生成包含图片img标签的字符串并在最后添加一张与第一张相同的图片用于实现无缝循环。同时生成小圆点的span标签字符串并将它们分别插入到banner_img和banner_dot中。自动轮播函数auto每次调用时index自增通过改变body的marginLeft属性来移动图片实现图片的切换。当index达到图片数量时重置index为 0过渡效果也清除并使用setTimeout设置一个过渡效果实现无缝循环。同时更新小圆点的背景颜色指示当前显示的图片。鼠标移动函数hover和hoverouthover函数在鼠标悬停时清除自动轮播定时器暂停自动轮播hoverout函数在鼠标移开时重新启动自动轮播定时器恢复自动轮播。箭头控制函数right和leftright函数调用auto函数实现向右切换图片并在切换后暂停箭头的点击事件1 秒后恢复。为了防止用户短时间内多次点击left函数在点击左箭头时先判断index是否为 0若为 0 则将index设置为图片数量切换到最后一张图片然后通过setTimeout逐步切换到前一张图片并更新小圆点的背景颜色。同样在切换后暂停箭头的点击事件1 秒后恢复。通过以上代码我们就能实现一个日常且实用好看的轮播图效果了。————————————————版权声明本文为CSDN博主「好青崧」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。原文链接https://blog.csdn.net/jht_520/article/details/147201002

相关新闻

动态数字宇宙理论(第六篇):AI 驾驭层终局格局与稳态智能体完整商业变现体系(预判)

动态数字宇宙理论(第六篇):AI 驾驭层终局格局与稳态智能体完整商业变现体系(预判)

动态数字宇宙理论(第六篇):AI 驾驭层终局格局与稳态智能体完整商业变现体系前言前五篇已经完成理论、数理、工程、时代成因、科学实证的完整学术闭环。 本篇落地产业终局、商业壁垒、变现逻辑、赛道分层、赚钱路径。市面上 99% 的 AI 商业分析…

2026/11/8 1:46:07 阅读更多 →
母线槽安装前后的核验工作,哪些参数需要现场复核

母线槽安装前后的核验工作,哪些参数需要现场复核

母线槽属于现场拼装式配电设备,工厂制造质量、现场安装工艺,两者共同决定后期运行是否可靠。不少项目工厂检测报告齐全,但后期出现接头发热,问题往往出在运输磕碰、现场装配不到位。到货进场阶段可以做基础核验:外观检…

2026/11/7 7:30:51 阅读更多 →
【Bug已解决】AddExternalInitializers copies device (GPU) OrtValues per session instead of using them in …

【Bug已解决】AddExternalInitializers copies device (GPU) OrtValues per session instead of using them in …

【Bug已解决】AddExternalInitializers copies device (GPU) OrtValues per session instead of using them in place 解决方案 一、现象长什么样 用 AddExternalInitializers(把一个已经常驻 GPU 的 OrtValue 作为外部初始化器加到计算图里,常见于把预加…

2026/11/8 1:56:45 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/9 14:01:10 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/9 14:56:39 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/10 2:03:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/9 14:01:10 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/9 7:45:06 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/9 14:01:11 阅读更多 →

日新闻

周新闻

月新闻