小练习
自写代码
<!DOCTYPE html>
<html lang="zh">
<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>
#box1 {
width: 300px;
height: 300px;
border: 1px red solid;
}
#imgList {
width: 100%;
}
</style>
<script>
window.onload = function () {
function getDOMObj(obj) {
var getObj = document.getElementById(obj);
return getObj;
}
function callback() {
if (this == btn01) {
clearInterval(timer);
timer = setInterval(function () {
console.log(timer);
index++;
if (index >= imgArr.length) {
index = 0;
}
imgList.src = imgArr[index];
}, 2000)
}else{
console.log("进入else判断了吗?");
clearInterval(timer);
}
}
function responseFunction(DOMObj, eventString) {
DOMObj.addEventListener(eventString, function () {
callback.call(DOMObj);
}, false);
}
imgList = getDOMObj("imgList");
imgArr = ["./图片/1.jpg", "./图片/2.jpeg", "./图片/3.jpg", "./图片/4.jpg", "./图片/5.jpg"];
var index = 0;
var timer;
var btn01 = getDOMObj("btn01");
responseFunction(btn01, "click");
var btn02 = getDOMObj("btn02");
responseFunction(btn02, "click");
}
</script>
</head>
<body>
<div id="box1">
<img src="./图片/1.jpg" id="imgList">
<br>
<br>
<button id="btn01">开始</button>
<button id="btn02">暂停</button>
</div>
</body>
</html>
但是,上面写的代码,没法去实现不同大小的图片,放在同一个div(固定高和宽的情况下),仍然,能够实现图片的自适应,不变形,能够铺满div的大小
此练习,需要注意以下几点
注意理解下面图片中的,在开启的定时器之前,需要将“当前元素上的其它的定时器关掉”,注意这个当前是相对于同一个元素来说的,否则,在本题中,btn01每被点击一次,就会开启一个定时器,但是,关的时候,只能关最后一个定时器
视频源代码如下所示:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.onload = function(){
var img1 = document.getElementById("img1");
var imgArr = ["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg","img/5.jpg"];
var index = 0;
var timer;
var btn01 = document.getElementById("btn01");
btn01.onclick = function(){
clearInterval(timer);
timer = setInterval(function(){
index++;
index %= imgArr.length;
img1.src = imgArr[index];
},1000);
};
var btn02 = document.getElementById("btn02");
btn02.onclick = function(){
clearInterval(timer);
};
};
</script>
</head>
<body>
<img id="img1" src="img/1.jpg"/>
<br /><br />
<button id="btn01">开始</button>
<button id="btn02">停止</button>
</body>
</html>
另外,学会这个地方的手法的使用