原生JS手写轮播图(超详细保姆级教程)
轮播图是前端页面最常见的功能官网 banner、商品推荐、活动图几乎随处可见。今天不使用任何插件纯原生 HTML CSS JS 手写一套完整轮播图包含自动播放、左右箭头切换、底部小圆点、鼠标悬停暂停、无缝切换。代码结构简单、注释详细、适合新手学习直接复制即可运行一、最终实现效果自动无限轮播左右箭头点击切换上一张/下一张底部小圆点跟随切换点击跳转对应图片鼠标移入暂停轮播移出继续播放无缝衔接无卡顿空白二、完整代码可直接运行原生JS轮播图script // 获取元素 let carousel document.getElementById(carousel); let imgBox document.querySelector(.imgBox); let left document.querySelector(.left); let right document.querySelector(.right); let pointList document.querySelectorAll(.point li); // 索引、图片宽度 let index 0; let imgWidth 600; // 1. 小圆点切换 for(let i 0; i pointList.length; i){ pointList[i].onclick function(){ // 更改索引 index i; // 移动图片 imgBox.style.left -index * imgWidth px; // 更新小圆点样式 changePoint(); } } // 小圆点激活样式切换函数 function changePoint(){ // 先清空所有样式 for(let i 0; i pointList.length; i){ pointList[i].classList.remove(active); } // 当前索引添加样式 pointList[index].classList.add(active); } // 2. 右箭头切换 right.onclick function(){ index; if(index pointList.length - 1){ index 0; } imgBox.style.left -index * imgWidth px; changePoint(); } // 3. 左箭头切换 left.onclick function(){ index--; if(index 0){ index pointList.length - 1; } imgBox.style.left -index * imgWidth px; changePoint(); } // 4. 自动轮播 let timer setInterval(function(){ right.onclick(); }, 2000); // 5. 鼠标悬浮暂停、离开继续 carousel.onmouseover function(){ clearInterval(timer); } carousel.onmouseout function(){ timer setInterval(function(){ right.onclick(); }, 2000); } /script三、代码核心逻辑讲解 1. CSS布局原理 外层轮播容器设置 overflow: hidden只显示一张图片的区域图片盒子横向放置所有图片通过改变 left 值实现图片平移切换。 2. 索引控制核心 定义变量 index 记录当前显示第几张图 - 向右切换index超出最大值归零 - 向左切换index--小于0跳转到最后一张 - 图片位移公式left -index * 图片宽度 3. 小圆点联动 每次切换图片时执行 changePoint()清空所有圆点样式给当前索引圆点添加高亮样式实现联动效果。 4. 自动播放 悬浮暂停 通过 setInterval 定时器实现自动轮播鼠标移入清除定时器暂停播放鼠标离开重新开启定时器体验更友好。 四、可扩展优化方向进阶 - 添加 过渡动画切换更丝滑 - 实现 无缝无限滚动当前为基础版可升级真正无缝 - 适配移动端做响应式轮播 - 增加切换淡入淡出效果 五、总结 原生 JS 轮播图是前端必练经典案例能很好的巩固DOM 操作、定时器、样式切换、条件判断、事件绑定等核心知识点。掌握这个案例就能看懂绝大多数插件轮播的底层原理。

相关新闻

JavaScript 常用字符串方法详解(附实战代码)

JavaScript 常用字符串方法详解(附实战代码)

前言 字符串是前端开发中最常处理的数据类型之一,展示文本、搜索匹配、分割内容、大小写转换等场景都离不开字符串方法。 今天结合实操示例,把日常高频使用的 JS 字符串 API 一次性讲清楚,每段代码附带运行效果说明,新手也能直接复…

2026/7/19 0:56:06 阅读更多 →
智能开发环境架构:AI 增强的本地开发体验设计

智能开发环境架构:AI 增强的本地开发体验设计

智能开发环境架构:AI 增强的本地开发体验设计 一、开发环境的隐性浪费:为什么传统本地开发流程存在大量机械操作 一个前端开发者的典型工作日包含大量机械操作:从需求文档中提取 API 接口定义、对照设计稿编写组件代码、根据错误堆栈搜索解决…

2026/7/19 0:56:06 阅读更多 →
AI 辅助前端性能瓶颈定位:从 Lighthouse 报告到代码级根因分析

AI 辅助前端性能瓶颈定位:从 Lighthouse 报告到代码级根因分析

AI 辅助前端性能瓶颈定位:从 Lighthouse 报告到代码级根因分析 一、Lighthouse 的定位天花板:为什么高分报告不等于高性能体验 Lighthouse 是前端性能审计的事实标准。它的评分体系覆盖了 FCP、LCP、TBT、CLS 等核心 Web 指标,为开发者提供了…

2026/7/19 0:56:05 阅读更多 →

最新新闻

HarmonyOS 6.1 PC应用实战:键鼠协同与多窗体——电商后台管理系统“上车”

HarmonyOS 6.1 PC应用实战:键鼠协同与多窗体——电商后台管理系统“上车”

系列番外生产力工具篇。车机篇发布后,有开发者问:“手机、车机都写了,那传说中的鸿蒙PC呢?咱们这个电商Demo能不能搞个PC版的后台管理系统?” 问到点子上了!随着HarmonyOS NEXT向PC端延伸,一次开…

2026/7/19 2:31:40 阅读更多 →
STM32串口通信开发实战:从初始化到中断处理

STM32串口通信开发实战:从初始化到中断处理

1. STM32串口通信核心模块解析在STM32开发中,usart.c作为串口通信的核心驱动文件,承担着硬件初始化、数据收发和中断处理等关键功能。这个文件通常包含两个核心函数:uart_init()用于串口硬件初始化,USART1_IRQHandler()处理串口中…

2026/7/19 2:31:40 阅读更多 →
HarmonyOS 6.1 车机应用实战:把电商“搬”进智能座舱

HarmonyOS 6.1 车机应用实战:把电商“搬”进智能座舱

系列番外智慧出行篇。上篇聊完空间计算,评论区有车友问:“鸿蒙车机这么火,能不能把咱们的电商Demo适配到车机上?等红灯时逛个街?” 这需求太真实了!HarmonyOS智能座舱(HarmonySpace)…

2026/7/19 2:31:40 阅读更多 →
HarmonyOS 6.1 空间计算初探:把电商展厅搬进“虚实融合”新世界

HarmonyOS 6.1 空间计算初探:把电商展厅搬进“虚实融合”新世界

系列番外空间计算篇。终章发布后,有读者留言:“现在都在聊Vision Pro和空间计算,鸿蒙在这方面有布局吗?能不能把我们这个电商Demo弄成3D的?” 答案是肯定的。HarmonyOS NEXT的ArkUI 3D和Spatial Computing Kit正是为此…

2026/7/19 2:31:40 阅读更多 →
STM32 SysTick定时器原理与应用实践

STM32 SysTick定时器原理与应用实践

1. STM32 SysTick定时器基础解析SysTick是ARM Cortex-M内核提供的一个24位递减计数器,作为STM32微控制器的标准外设,它主要承担操作系统节拍定时器的角色。这个看似简单的定时器在实际工程中却承担着关键任务——从最基本的延时函数到RTOS的任务调度都依…

2026/7/19 2:31:40 阅读更多 →
总纲:把不确定性从 LLM 侧转移到工程侧

总纲:把不确定性从 LLM 侧转移到工程侧

结论先说 准确率从 65% 提升到 85%,三四周,由我独立完成。 核心思路——把不确定性从 LLM 侧转移到工程侧。 这不是事后总结,是多次迭代提示词、发现收益递减后,形成的整套调优思路; 它覆盖全部 11 个模块,可拆分为四层逻辑:前置拦截 LLM、收窄 LLM 决策空间、兜底修复 LLM 异常…

2026/7/19 2:30:40 阅读更多 →

日新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

月新闻