//代码示例如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
div#slider {
width: 1000px;
height: 358px;
background: url('./images/shutter_1.jpg') no-repeat;
display: flex;
justify-content: space-between;
align-items: center;
}
#arrowLeft,
#arrowRight {
width: 49px;
height: 49px;
background: url("images/shutter_prevBtn.png") no-repeat;
margin: 0 20px;
cursor: pointer;
}
#arrowLeft:hover,
#arrowRight:hover {
background-position: center bottom;
}
#arrowRight {
transform: rotate(180deg);
}
#circle {
list-style: none;
overflow: hidden;
align-self: flex-end;
}
#circle li {
float: left;
width: 10px;
height: 10px;
border-radius: 50%;
background-color: white;
margin: 10px 5px;
cursor: pointer;
}
#circle li:first-child {
background-color: gray;
}
</style>
</head>
<body>
<div id="slider">
<div id="arrowLeft"></div>
<ul id="circle">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<div id="arrowRight"></div>
</div>
<script>
let slider = document.querySelector('#slider');
let arrowLeft = document.getElementById('arrowLeft');
let arrowRight = document.getElementById('arrowRight');
let lis = document.querySelectorAll('#circle li');
let imagesArr = ['shutter_1.jpg', 'shutter_2.jpg', 'shutter_3.jpg', 'shutter_4.jpg']
let i = 0;
let timer = setInterval(rightChange, 1000);
// 鼠标移入时暂停计时器
slider.onmouseenter = function () {
clearInterval(timer);
}
// 鼠标移出时重启计时器
slider.onmouseleave = function () {
timer = setInterval(rightChange, 1000)
}
// 点击后向右切换图片
arrowRight.onclick = function () {
rightChange();
}
// 点击后向左切换图片
arrowLeft.onclick = function () {
leftChange();
}
// 四个 li 的点击事件
for (let j = 0; j < lis.length; j++) {
lis[j].onclick = function () {
i = j;
slider.style.background = `url('./images/${imagesArr[i]}') no-repeat`;
circleChange();
}
}
function rightChange() {
i++;
if (i == imagesArr.length) {
i = 0;
}
slider.style.background = `url('./images/${imagesArr[i]}') no-repeat`;
circleChange();
}
function leftChange() {
i--;
if (i == -1) {
i = imagesArr.length - 1;
}
slider.style.background = `url('./images/${imagesArr[i]}') no-repeat`;
circleChange();
}
function circleChange() {
// 四个 li 全变白
for (let k = 0; k < lis.length; k++) {
lis[k].style.backgroundColor = 'white';
}
// 当前 li 变灰
lis[i].style.backgroundColor = 'gray';
}
</script>
</body>
</html>

转载于:https://www.cnblogs.com/date150219-/p/9170509.html

用JavaScript语言制作简易版轮播图相关推荐

  1. javascript实现图片轮播_手撸一个简易版轮播图(上)

    手撸一个简易版轮播图 实现原理,通过控制 swiper-warpper 容器的定位来达到切换图片的效果. 页面布局 简易版轮播图 < > 页面样式 .container{width: 60 ...

  2. HTML 简易、易懂版轮播图 有图有真相 JavaScript实现

    HTML 简易.易懂版轮播图 JavaScript实现

  3. 原生js进阶版轮播图实现(走马灯效果,无缝衔接)

    原生js进阶版轮播图实现(走马灯效果,无缝衔接) 利用原生js手写一个轮播图,是上一篇文章的简易版的一个进阶,本次轮播图主要是利用定位和定时器实现了走马灯效果,并且是左右轮播.实现过程与代码也是很简单 ...

  4. 解决在使用CSS3制作不间断轮播图中 收尾连接后Interval 延时问题

    2019独角兽企业重金招聘Python工程师标准>>> 问题:使用CSS3制作不间断轮播图中 原理就是克隆一个首个轮播图在整个轮播图的尾部,尾部播放放以后继续播放克隆的首部块,然后在 ...

  5. html加css做成的简易木马轮播图

    html加css做成的简易木马轮播图 自己做着当练习的,还没有加js切页效果 代码如下: <!DOCTYPE html> <html lang="en"> ...

  6. 短视频app源码出售swiper.js制作酷炫轮播图

    html <html lang="en"><head><meta charset="utf-8"><title> ...

  7. 横向自动轮播图html代码,JavaScript实现PC端横向轮播图

    JavaScript实现PC端横向轮播图 发布时间:2020-09-09 02:10:03 来源:脚本之家 阅读:100 作者:菜鸟向往蓝天 本文实例为大家分享了JavaScript实现PC端横向轮播 ...

  8. JavaScript+HTML+CSS 无缝滚动轮播图的两种方式

    第一种方式 在轮播图最后添加第一张,一张重复的图片. 点击前一张,到了第一张,将父级oList移动到最后一张(也就是添加的重复的第一张),在进行后续动画. 点击下一张,到了最后一张(也就是添加的重复的 ...

  9. html网易云音乐图片轮播效果,Vue之网易云音乐PC版轮播图的实现

    Github - program-learning-lists 最近在刷网易云音乐歌单时发现首页的轮播图很有意思,正好自己想尝试做一个PC版的网易云音乐,于是就是使用Vue去做这个demo,废话少说, ...

最新文章

  1. python的turtle绘图体系入门必看(一)
  2. 哪些人适合学习软件测试
  3. mysql修改主键属性_mysql如何改变主键属性
  4. python零基础看什么视频和书籍-资料│最适合大学生零基础学的Python视频+电子书...
  5. StringBuilder类与String类的区别
  6. linux磁盘空间清理
  7. 如何给视频中插入视频,字幕,以及去掉前后广告
  8. 亚洲食品市场挑战:了解亚洲新消费群体
  9. Android native进程间通信实例-binder篇之——解决实际问题inputreader内建类清楚缓存...
  10. spark数据倾斜解决之提高并行度
  11. 请求header_Flutter 基于网络请求框架Dio的二次封装
  12. docker 中文目录及文件乱码_解决docker容器中文乱码,修改docker容器编码格式
  13. MySQL 修改字段类型或长度
  14. C++刷题: 逆波兰表达式(力扣150题)
  15. MySQL数据库知识大全
  16. 《京东话费充值系统架构演进实践》--阅读
  17. pathon中字典的基本用法
  18. 遇险哪里还有空报警?求救app告诉你,有的
  19. 华硕笔记本系统重装之后需要输入用户名和计算机名称是怎么回事,华硕笔记本电脑重装系统【方法详解】...
  20. SSS1700 QFN36单芯片设计一款USB Typec耳机|支持线控和欧美规自动切换USB耳机方案

热门文章

  1. [APIO / CTSC2007]数据备份 --- 贪心
  2. Expm 1_2 实现快速排序的算法,并尝试采用不同的方法实现线性的划分过程.
  3. 算法导论笔记:32字符串匹配算法
  4. markdown简明使用语法
  5. Android Studio来了,它能取代Eclipse吗?
  6. 如何利用FNDLOAD更新FORM的Personalization(Moving Personalizations between instances)
  7. LeetCode(169)——求众数(JavaScript)
  8. JavaScript中eval()和$.parseJSON()的区别和联系以及JSON.stringify()的区别
  9. 数据库原理—DBS的物理组成和结构模式(五)
  10. linux 词霸,Linux中的词霸