定时器轮播图

几个部分:

  1. 封装重复函数
  2. 左右箭头点击切换效果
  3. 自动轮播—定时器控制(模拟左箭头点击效果以显示出自动轮播的效果)、鼠标移入停止,移出继续效果
  4. 点击圆点跳转相应页面(解决了点击后不继续轮播下一张图的bug)
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>轮播图点击切换</title><style>* {box-sizing: border-box;}.slider {width: 560px;height: 400px;overflow: hidden;}.slider-wrapper {width: 100%;height: 320px;}.slider-wrapper img {width: 100%;height: 100%;display: block;}.slider-footer {height: 80px;background-color: rgb(100, 67, 68);padding: 12px 12px 0 12px;position: relative;}.slider-footer .toggle {position: absolute;right: 0;top: 12px;display: flex;}.slider-footer .toggle button {margin-right: 12px;width: 28px;height: 28px;appearance: none;border: none;background: rgba(255, 255, 255, 0.1);color: #fff;border-radius: 4px;cursor: pointer;}.slider-footer .toggle button:hover {background: rgba(255, 255, 255, 0.2);}.slider-footer p {margin: 0;color: #fff;font-size: 18px;margin-bottom: 10px;}.slider-indicator {margin: 0;padding: 0;list-style: none;display: flex;align-items: center;}.slider-indicator li {width: 8px;height: 8px;margin: 4px;border-radius: 50%;background: #fff;opacity: 0.4;cursor: pointer;}.slider-indicator li.active {width: 12px;height: 12px;opacity: 1;}</style>
</head><body><div class="slider"><div class="slider-wrapper"><img src="./images/slider01.jpg" alt="" /></div><div class="slider-footer"><p>对人类来说会不会太超前了?</p><ul class="slider-indicator"><li class="active"></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><div class="toggle"><button class="prev">&lt;</button><button class="next">&gt;</button></div></div></div><script>// 1. 初始数据const sliderData = [{ url: './images/slider01.jpg', title: '对人类来说会不会太超前了?', color: 'rgb(100, 67, 68)' },{ url: './images/slider02.jpg', title: '开启剑与雪的黑暗传说!', color: 'rgb(43, 35, 26)' },{ url: './images/slider03.jpg', title: '真正的jo厨出现了!', color: 'rgb(36, 31, 33)' },{ url: './images/slider04.jpg', title: '李玉刚:让世界通过B站看到东方大国文化', color: 'rgb(139, 98, 66)' },{ url: './images/slider05.jpg', title: '快来分享你的寒假日常吧~', color: 'rgb(67, 90, 92)' },{ url: './images/slider06.jpg', title: '哔哩哔哩小年YEAH', color: 'rgb(166, 131, 143)' },{ url: './images/slider07.jpg', title: '一站式解决你的电脑配置问题!!!', color: 'rgb(53, 29, 25)' },{ url: './images/slider08.jpg', title: '谁不想和小猫咪贴贴呢!', color: 'rgb(99, 72, 114)' },]const img = document.querySelector('img')const pCont = document.querySelector('.slider-footer p')const bgc = document.querySelector('.slider-footer')const lis = document.querySelectorAll('.slider-indicator li')const leftBtn = document.querySelector('.prev')const rightBtn = document.querySelector('.next')// part01-封装函数解决 代码重复利用function render(m) {const obj = sliderData[m]// 内容修改pCont.innerHTML = sliderData[m].title// 背景色修改bgc.style.backgroundColor = obj.color// 背景图修改img.src = obj.url// 圆点高亮document.querySelector('li.active').classList.remove('active')lis[m].classList.add('active')}//part02-左右箭头注册点击事件let i = 0// 右箭头注册点击事件rightBtn.addEventListener('click', function () {i++if (i > sliderData.length - 1) {i = 0}render(i)})// 左箭头注册事件leftBtn.addEventListener('click', function () {i--if (i < 0) {i = sliderData.length - 1}render(i)})// part03-自动轮播// 模拟鼠标点击效果 dom对象名.click()// 使用定时器模拟右箭头点击事件let timerId = setInterval(function () {rightBtn.click()}, 1000);// part03-自动轮播,鼠标移入停止轮播,鼠标移出开始轮播// 鼠标经过停止定时器const slider = document.querySelector('.slider')slider.addEventListener('mouseenter', function () {clearInterval(timerId)})// 鼠标离开开启定时器// 一次走完后会有下一次不执行停止定时器的操作,原因是因为只有一个定时器timerId,上面已经被停掉了,后面没有新的启动定时器的函数,所以现在给这个启动定时器重新赋值给了timerId,就解决了这个问题slider.addEventListener('mouseleave', function () {timerId = setInterval(function () {rightBtn.click()}, 1000)})// part04-点击圆点跳转相应页面for (let index = 0; index < lis.length; index++) {lis[index].addEventListener('click', function () {render(index)i=index})}</script>
</body></html>

定时器轮播图---(功能:自动轮播,左右箭头点击切换,点击圆点跳转图片)相关推荐

  1. JavaScript实现京东轮播图效果——自动轮播,左右按钮切换图片,小圆圈跟随图片变化,点击小圆圈可跳转图片,无缝循环播放

    JavaScript实现京东轮播图效果--自动轮播,左右按钮切换图片,小圆圈跟随图片变化,点击小圆圈可跳转图片,无缝循环播放 静态效果图如下: CSS部分 *{margin: 0;padding: 0 ...

  2. js轮播图(自动轮播 箭头轮播 序号轮播)

    图片路径用自己的就好 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  3. Html+CSS+JS轮播图:手动轮播,自动轮播

    演示效果 轮播图代码: <!DOCTYPE html> <html lang="en"><head><meta charset=" ...

  4. 基于html+js实现轮播图(自动轮播、左右按钮、小圆点点击及切换图片)

    使用html和js实现的一个简单小练习轮播图.大概功能主要是: 1.使用时间函数自动切换图片: 2.在图片及按钮及小圆点的父节点身上绑定事件代理,添加mouseenter及mouseleave事件类型 ...

  5. 如何使用JQ封装轮播图 实现自动轮播、点击切换等效果..

    css部分: *{margin: 0;padding: 0;}#banner{width: 800px;height: 500px;margin: 30px auto;position: relati ...

  6. 三种方式实现轮播图功能

    手动实现轮播图 使用纯HTML.CSS.JavaScript实现轮播图功能. position 使用position的绝对定位与相对定位实现轮播图,首先将图片全部拼接成为一行,使用overflow: ...

  7. html 轮播怎么用jq设置,jQuery轮播图功能实现方法

    本文实例为大家分享了jQuery轮播图功能的实现代码,供大家参考,具体内容如下 jQuery轮播(无animation) html布局 5 1 2 3 4 5 1 < > CSS /* 轮 ...

  8. 项目轮播图功能实现和导航栏的实现

    项目轮播图功能实现和导航栏的实现 轮播图功能 安装依赖模块 上传文件相关配置 注册home子应用 创建轮播图的model模型 创建Banner的序列化器 创建Banner的视图类 配置Banner的路 ...

  9. 后台实现电商首页轮播图功能

    这后端实现轮播图要做的功能:将能够展示的轮播图 从数据库中查询出来,返回给前端,就就这么一点功能,但是主要是 数据库表的设计. 1.:轮播图的表结构: 1.1 :关于背景色:也可以不用,主要看你的轮播 ...

最新文章

  1. AsyncTask进度条加载网站数据到ListView
  2. CSS3盒模型display:box详解
  3. 安川机器人如何备份_YASKAWA机器人视觉局域网设置参考
  4. 没有基础学python_python没有基础好学吗
  5. 【Mysql优化】索引覆盖
  6. rtt面向对象oopc——0.类、对象及派生
  7. Solr教程:1.下载和安装
  8. 06-netty之http之文件服务器
  9. 小心!!,使用缓存的陷阱
  10. UE4是什么?虚幻4引擎是什么?
  11. 学习c语言编程用什么软件_用C编程
  12. xmapp_mysql端口冲突解决
  13. 74CMS模版注入漏洞复现
  14. Stata:投资组合有效边界
  15. 【第008问 Unity中什么是UV?】
  16. 2018-3 至2018-5 菜鸟初涉
  17. 万门python激活码_万门Python基础趣讲精练
  18. linux系统下 blast,Linux下BLAST安装及BLAST使用
  19. linux命令中ps -ef是什么意思
  20. 写给大学时期自己的寄语

热门文章

  1. 成考自考本科生可以申请德国大学吗?
  2. SQL取日期为当前月份的第几周思路
  3. TCP 协议(序号和确认号)
  4. Paper:GPT之《Improving Language Understanding by Generative Pre-Training》翻译与解读
  5. [基础]-requests模块使用详解
  6. 英雄联盟7月23日维修服务器,lol维护到几点今天 英雄联盟7月23日停机维护多长时间...
  7. uni-app 157发布朋友圈-批量上传图片
  8. opencv与python环境搭建
  9. scrcpy投屏教程、及无线投屏
  10. CentOS 7.5系统安装使用Mysql 5.7数据库