发布时间:2026/8/5 10:17:11
【Web前端】轮播图 学前端到了一定阶段总会想动手写点能看到效果的东西。轮播图就是一个特别好的练手项目——它不复杂但涵盖了布局、定位、事件、DOM操作、定时器等多个知识点写完之后对前端基础的理解会扎实很多。 这篇文章就从我写的一个小米商城风格轮播图出发把实现思路和核心代码完整拆解一遍。最终效果预览- 3张图片自动轮播每3秒切换一张 - 左右箭头点击切换上一张/下一张 - 底部小圆点指示当前图片点击可跳转 - 鼠标悬停暂停自动播放移出继续整体流程分三步1. HTML结构一个容器 .box 包裹图片列表 ul外加箭头和小圆点2. CSS样式容器 overflow: hidden 只显示一张ul 宽度为图片总宽度3. JS逻辑点击箭头或小圆点时改变 ul 的 transform: translateX() 值1.HTML结构div classbox idbox !-- 图片列表 -- ul idul li img srchttps://cdn.cnbj1.fds.api.mi-img.com/mi-mall/72d2f359aa032bc5f6372b3022b39a92.jpg?thumb1w2146h805fwebpq90 alt小米15 /li li img srchttps://cdn.cnbj1.fds.api.mi-img.com/mi-mall/1484efbc954604f2fff16aa8a7447c3d.jpg?thumb1w2146h805fwebpq90 altRedmi K80 /li li img srchttps://cdn.cnbj1.fds.api.mi-img.com/mi-mall/2481d91110fb14bbfe2b8c07325cff97.jpg?thumb1w2146h805fwebpq90 alt小米家电 /li /ul !-- 左右箭头 -- div classxiaoyu idleftBtnlt;/div div classdayu idrightBtngt;/div !-- 底部小圆点 -- div classpoint idpoint div classactive/div div/div div/div /div /div2.CSS核心第一步容器做窗口.box { width: 100%; max-width: 2146px; height: 805px; margin: 0 auto; position: relative; overflow: hidden; /* 关键超出的部分隐藏只显示一张图 */ }第二步图片横向排列.box ul { width: 6438px; /* 2146 × 3张图 */ height: 805px; } .box ul li { float: left; /* 横向排列 */ width: 2146px; height: 805px; } .box ul li img { width: 100%; height: 100%; display: block; }核心逻辑ul宽度 单张图片宽度 × 图片数量所有li左浮动后横成一行。第三步箭头定位.arrow { position: absolute; top: 50%; transform: translateY(-50%); /* 垂直居中 */ cursor: pointer; } .arrow-left { left: 10px; } .arrow-right { right: 10px; } .arrow:hover { background-color: rgba(0, 0, 0, 0.4); color: #fff; }第四步小圆点居中.point { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); /* 水平居中 */ display: flex; gap: 14px; } .point div { width: 17px; height: 17px; border-radius: 50%; background-color: #8e8f90; cursor: pointer; } .point .active { background-color: #ff6700; /* 当前图片高亮为橙色 */ }3. JavaScript核心第一步获取元素var ul document.getElementById(ul); var points document.querySelectorAll(.point div); var leftBtn document.getElementById(leftBtn); var rightBtn document.getElementById(rightBtn); var box document.getElementById(box); var imgWidth 2146; // 单张图片宽度 var total 3; // 图片总数 var index 0; // 当前显示第几张从0开始 var timer null; // 定时器第二步核心切换函数function goTo(idx) { // 循环边界处理 if (idx 0) idx total - 1; else if (idx total) idx 0; index idx; // 核心移动整行图片 ul.style.transition transform 0.5s ease; ul.style.transform translateX(- (index * imgWidth) px); // 更新小圆点样式 for (var i 0; i points.length; i) { points[i].className ; if (i index) points[i].className active; } }核心逻辑就这一句ul.style.transform translateX(- (index * imgWidth) px);index偏移量显示效果00px显示第1张1-2146px显示第2张2-4292px显示第3张第三步自动播放function next() { goTo(index 1); } function prev() { goTo(index - 1); } function startAutoPlay() { timer setInterval(next, 3000); // 每3秒切换 } function stopAutoPlay() { clearInterval(timer); }第四步绑定事件// 右箭头 rightBtn.addEventListener(click, function() { stopAutoPlay(); next(); startAutoPlay(); // 手动点击后重新计时 }); // 左箭头 leftBtn.addEventListener(click, function() { stopAutoPlay(); prev(); startAutoPlay(); }); // 小圆点点击跳转 for (var i 0; i points.length; i) { (function(j) { points[j].addEventListener(click, function() { stopAutoPlay(); goTo(j); startAutoPlay(); }); })(i); } // 鼠标悬停暂停 / 移出继续 box.addEventListener(mouseenter, stopAutoPlay); box.addEventListener(mouseleave, startAutoPlay); // 启动自动播放 startAutoPlay();总结轮播图的实现核心就三件事CSSoverflow: hidden做窗口transform: translateX()做移动JS改变translateX的值来切换图片用setInterval实现自动播放事件箭头/圆点控制切换鼠标悬停控制暂停/继续功能清单功能实现方式自动轮播setInterval(next, 3000)鼠标悬停暂停mouseenter清除定时器左右箭头切换点击修改index值小圆点跳转点击直接跳转到对应图片循环播放边界判断到头跳回第一张

相关新闻

2026/8/5 10:17:11

Hotkey Detective:3步定位Windows热键冲突的终极免费方案

Hotkey Detective:3步定位Windows热键冲突的终极免费方案 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否…

2026/8/5 10:12:11

Linux chcon 命令超详细教程|SELinux 安全上下文修改实战

1. 命令简介chcon(Change Context)命令用于修改文件或目录的 SELinux 安全上下文。SELinux(Security-Enhanced Linux)是一种强制访问控制(MAC)安全机制,通过为系统中的每个对象(文件…

2026/8/5 11:12:40

基于Hadoop+Spark+Hive的地震预测大数据系统设计与实现

1. 项目背景与核心价值地震预测一直是地质学和计算机科学交叉领域的重要课题。传统的地震预测方法主要依赖地质传感器网络和历史数据分析,但存在数据处理效率低、预测模型单一等问题。随着大数据技术的发展,基于HadoopSparkHive的技术栈为地震预测提供了…

2026/8/5 11:12:40

CF202608

B. Good times Good times 思路分析: 这道题的思路给我很深的印象,要使得x*y之后数字的种类不变,最好的办法就是构造出两个x拼凑在一起。我们就可以令y为1^m1。这样就可以实现上面所说的了。 1335C - Two Teams Composing 题目分析&#x…

2026/8/5 11:12:40

MySQL批量UPDATE性能优化与实现方案

1. MySQL批量UPDATE的两种核心实现方式在数据库操作中,批量更新是提升性能的关键手段。当我们需要修改大量数据时,单条UPDATE语句循环执行会导致严重的性能问题——每次操作都需要建立连接、解析SQL、执行并返回结果。以修改10万条记录为例,单…

2026/8/5 11:12:40

STM32F103C8T6与OLED实现嵌入式实时曲线绘制全解析

1. 项目概述与核心价值 最近在整理一些嵌入式数据可视化的老项目,发现很多朋友对在资源受限的MCU上实现动态图形显示,尤其是实时曲线绘制,感到头疼。手头正好有一个基于经典款STM32F103C8T6和0.96寸OLED(SSD1306驱动)的…

2026/8/5 11:12:40

Kali Linux网络配置实战:DHCP与静态IP设置详解

1. 项目概述:为什么Kali Linux的网络配置如此关键?如果你刚接触Kali Linux,可能会觉得它和普通的Ubuntu、CentOS没什么两样,装好就能用。但当你真正开始用它进行渗透测试、安全审计或者网络分析时,第一个让你“卡住”的…

2026/8/5 3:13:11

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/5 0:01:34

三升四,比成绩下滑更可怕的,是孩子开始「认命」

分水岭上,最难的不是翻过去,是孩子不想翻了。八月初了。这两个字,对三升四的家长来说,比任何闹钟都让人清醒。最近的家长群里,气氛明显不一样了。一升二的在关心兴趣班,二升三的在讨论要不要提前学英语。而…

2026/8/5 0:01:34

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:01:34

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/3 22:40:58

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/3 13:26:41

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/3 16:43:13

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…