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/9/23 8:25:57 阅读更多 →
母线槽安装前后的核验工作,哪些参数需要现场复核

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

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

2026/9/26 15:50:12 阅读更多 →
【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/9/22 9:07:34 阅读更多 →

最新新闻

Font Awesome 7:图标库与前端工具集(Web Fonts / SVG / CSS)完整使用指南

Font Awesome 7:图标库与前端工具集(Web Fonts / SVG / CSS)完整使用指南

前端UI组件 【免费下载链接】Font-Awesome The iconic SVG, font, and CSS toolkit 项目地址: https://gitcode.com/GitHub_Trending/fo/Font-Awesome 点击查看 免费下载 导读 本文基于当前仓库 Font-Awesome(Font Awesome Free 7.0.0)的官…

2026/9/30 6:59:08 阅读更多 →
EG3013S|SOP‑8 单相半桥栅极驱动芯片,80V 耐压大电流驱动,电动车无刷电机电源国产优选

EG3013S|SOP‑8 单相半桥栅极驱动芯片,80V 耐压大电流驱动,电动车无刷电机电源国产优选

做无刷电机控制器、降压半桥电源、D 类功放,需要半桥 MOS/IGBT 栅极驱动,追求大驱动电流、内置互锁闭锁、硬件死区,屹晶微电子EG3013S单相半桥栅极驱动芯片,SOP‑8 贴片封装。高端悬浮耐压 80V,达林顿输出最大灌电流 1…

2026/9/30 6:59:08 阅读更多 →
GitBook 开源前端主题切换器可达性优化:页脚兜底显示机制与响应式布局解析

GitBook 开源前端主题切换器可达性优化:页脚兜底显示机制与响应式布局解析

前端后端知识管理 【免费下载链接】gitbook The open source frontend for GitBook doc sites 项目地址: https://gitcode.com/gh_mirrors/gi/gitbook 点击查看 免费下载 本文基于 GitBook 开源前端仓库的变更记录 .changeset/dark-mode-toggle-laptop.md&#xff…

2026/9/30 6:59:08 阅读更多 →
TCP滑动窗口与拥塞控制是什么?从流量控制到网络稳定性的完整解析

TCP滑动窗口与拥塞控制是什么?从流量控制到网络稳定性的完整解析

前言TCP是互联网上使用最广泛的传输层协议。它提供可靠传输、按序交付、流量控制、拥塞控制等能力。其中,滑动窗口和拥塞控制是两个容易被混淆的概念:它们都涉及"窗口",都影响发送速率,但解决的问题完全不同。这篇文章把…

2026/9/30 6:59:08 阅读更多 →
11 FM调制与解调的仿真

11 FM调制与解调的仿真

调频简介 FM调制(即调频)是使载波的频率随调制信号(即原始信号,也叫基带信号)的大小变化而变化,而振幅保持不变的调制方式,其数学公式如下:调频的主要指标要实现频率调制(FM)&#x…

2026/9/30 6:59:08 阅读更多 →
以 Weather Reporter 为单一线索重构演讲:Claude Code 五段式 Agentic 教学路径的叙事设计与落地

以 Weather Reporter 为单一线索重构演讲:Claude Code 五段式 Agentic 教学路径的叙事设计与落地

文档教程AI 技能 【免费下载链接】claude-code-best-practice from vibe coding to agentic engineering - practice makes claude perfect 项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-best-practice 点击查看 免费下载 这份学习旅程文档&…

2026/9/30 6:58:07 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述:为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多,后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表,动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介:本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档,聚焦城市公共广告资源信息化管理痛点,提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构,含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求,背景很直接:公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关,开放给几个业务团队用。结果第一个月账单出来,额度直接超了 4 倍。仔细查日志,发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →