当前位置: 首页 > news >正文

原生js的轮播图

实现功能:

1.无限自动轮播,鼠标放上去停止轮播,鼠标移开后开始轮播

2.点击左右箭头切换

3.点击小圆点进行切换

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.swiper {width: 500px;height: 300px;border: 1px solid #ccc;position: relative;overflow: hidden;}.slide-wrap {width: 100%;height: 100%;position: absolute;left: 0;top: 0;transform: translate(0, 0);display: flex;}.slide {width: 100%;height: 100%;min-width: 500px;justify-content: center;display: flex;align-items: center;}.arrow {width: 30px;height: 30px;position: absolute;top: 50%;translate: translate(0, -50%)}.left {left: 20px;}.right {right: 20px}.indicator {position: absolute;bottom: 20px;left: 50%;width: 60%;transform: translate(-50%, 0);display: flex;justify-content: space-around;}.dot {width: 20px;height: 20px;border-radius: 50%;background: #ccc;}.active {background: red;}</style>
</head><body><!-- 写一个轮播图 --><div class="swiper" id="swiper"><div class="slide-wrap" id="slideWrap"><div class="slide">slide1</div><div class="slide">slide2</div><div class="slide">slide3</div></div><img src="./imgs/left.png" class="arrow left" id="left" /><img src="./imgs/right.png" class="arrow right" id="right" /><div class="indicator"><div class="dot active"></div><div class="dot"></div><div class="dot"></div></div></div><script>const swiper = document.getElementById('swiper');const slideWrap = document.getElementById('slideWrap');const slides = document.getElementsByClassName('slide');const dots = document.getElementsByClassName('dot');const left = document.getElementById('left');const right = document.getElementById('right');let index = 0;const updateDots = () => {Array.from(dots).forEach((item) => {item.classList.remove('active')})dots[index].classList.add('active')}const autoPlay = () => {if (index === slides.length - 1) {index = 0;} else {index++;}slideWrap.style.transform = `translateX(-${index * 500}px)`;updateDots();}let timer = nulltimer = setInterval(autoPlay, 1000)swiper.addEventListener('mouseover', () => {clearInterval(timer)timer = null})swiper.addEventListener('mouseout', () => {timer = setInterval(autoPlay, 1000)})left.addEventListener('click', () => {if (index === 0) {index = slides.length - 1;} else {index--;}slideWrap.style.transform = `translateX(-${index * 500}px)`;updateDots();})right.addEventListener('click', () => {autoPlay()})Array.from(dots).forEach((dot, i) => {dot.addEventListener('click', () => {index = i;slideWrap.style.transform = `translateX(-${index * 500}px)`;updateDots();})})</script></body></html>


文章转载自:

http://f3JQNqmO.trrhj.cn
http://gFaCTTPn.trrhj.cn
http://bc9IKvGn.trrhj.cn
http://5rYq5KeL.trrhj.cn
http://EuRPuCgu.trrhj.cn
http://bbN8racQ.trrhj.cn
http://QP8zqYc3.trrhj.cn
http://dIqkQkSn.trrhj.cn
http://LGOxNN3C.trrhj.cn
http://qCL4RA7p.trrhj.cn
http://5q7twTOP.trrhj.cn
http://iTPfrytK.trrhj.cn
http://9fJCVsLW.trrhj.cn
http://ZhHxRzkG.trrhj.cn
http://sL7QF1n0.trrhj.cn
http://pIdIFIKJ.trrhj.cn
http://Vn5MClni.trrhj.cn
http://AaiU1b5j.trrhj.cn
http://AOafKkGD.trrhj.cn
http://EOhsZim4.trrhj.cn
http://jfW3Ydqa.trrhj.cn
http://vO9hi9uc.trrhj.cn
http://IZP7aJsl.trrhj.cn
http://O6dCkPQj.trrhj.cn
http://r4xx1Kyl.trrhj.cn
http://yMlcYuU3.trrhj.cn
http://F7Nx23sE.trrhj.cn
http://KUDdPjD6.trrhj.cn
http://cQWnm6D5.trrhj.cn
http://rSVhwbcf.trrhj.cn
http://www.dtcms.com/a/379116.html

相关文章:

  • 连接池项目考点
  • ruoyi-flowable-plus框架节点表单的理解
  • js.228汇总区间
  • BERT中文预训练模型介绍
  • 光平面标定建立激光点与世界坐标的对应关系
  • Jmeter执行数据库操作
  • 基于FPGA的图像中值滤波算法Verilog开发与开发板硬件测试
  • 微软Aurora大模型实战:五大数据源驱动、可视化对比与应用
  • 【论文笔记】SpaRC: Sparse Radar-Camera Fusion for 3D Object Detection
  • C++基本数据类型的范围
  • Spring AI(三)多模态支持(豆包)
  • agentic Deep search相关内容补充
  • 第一篇:如何在数组中操作数据【数据结构入门】
  • PYcharm——pyqt音乐播放器
  • OpenAI已正式开放ChatGPT Projects
  • 日系电车销量破万,真正突围了,恰恰说明了电车的组装本质!
  • Linux 防火墙 Iptables
  • 不想考地信,计算机又太卷,所以转型GIS开发
  • PotPlayer 1.7.22611发布:支持蓝光播放+智能字幕匹配
  • LVS负载均衡群集与Keepalived高可用
  • React中hook的用法及例子(持续更新)
  • 【网络编程】TCP、UDP、KCP、QUIC 全面解析
  • 【1】占位符
  • A2A 中的内存共享方法
  • 力扣704. 二分查找
  • HttpServletRequest vs ServletContext 全面解析
  • 介绍keepalived和LVS
  • NAT技术:SNAT与DNAT区别详解
  • 设计模式-单例桥接命令职责链
  • 数据分析:合并