思路:点击下一张(next),修改图片的路径(src),点击上一张(prev),修改图片路径,图片路径存在于图片路径数组(imgArr)中,那么,我们可以通过修改下标(index)的方式来修改图片路径。有两个需要考虑的点,当点击下一张,如果图片是最后一张,就需要修改下标为数组第一个,一切从头开始,当点击上一张,若图片是第一张,则修改下标为图片路径数组的最后一个来衔接循环。最最重要的是必须声明全局变量index用来修改下标,再来通过下标达到修改路径的目的,声明全局变量是因为上下按钮都需要。
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<style>
.title {
background-color: skyblue;
color: white;
}
img {
width: 200px;
height: 200px;
box-shadow: 0 0 20px hotpink;
}
</style>
</head>
<body>
<h2 class="title">图片切换</h2>
<img alt="" src="./images/01.jpg" />
<br />
<input id="prev" type="button" value="上一张" />
<input id="next" type="button" value="下一张" />
<script>
let imgArr = ['./images/01.jpg',
'./images/02.jpg',
'./images/03.jpg',
'./images/04.jpg',
'./images/05.jpg'
]
let prev = document.querySelector('#prev') //获取上一张按钮,因为存在点击事件
let next = document.querySelector('#next') //获取下一张按钮,因为存在点击事件
let img = document.querySelector('img') //获取图片,因为要对齐路径进行修改
let index = 0 //初始化下标为0,必须是全局变量,因为上下按钮都需要
//下一张
next.onclick = function () {
if (index == imgArr.length - 1) { //判断是否是最后一张
index = 0 //如果是最后一张,则点击下一张的时候修改下标为第一张
} else {
index++
}
img.src = imgArr[index]
}
//上一张
prev.onclick = function () {
if (index == 0) { //判断是否是第一张
index = imgArr.length - 1 //如果是第一张,则点击上一张的时候修改下标为最后一张
} else {
index--
}
img.src = imgArr[index]
}
</script>
</body>
</html>