<!DOCTYPE html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>设计模式</title>
<style>
*{
padding: 0;
margin: 0;
}
.main-box{
width: 100%;
height: 500px;
position: relative;
}
.main-box li{
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
z-index: -1;
opacity: 0;
transition: opacity 1.2s ease-in-out;
}
.main-box .show{
opacity: 1;
z-index: 1;
}
img{
width: 100%;
height: 500px;
display: block;
}
#dot-li {
text-align: center;
position: absolute;
width: 100%;
bottom: 10px;
left: 0;
z-index: 10;
}
#dot-li span{
background:#ddd;
width: 10px;
height: 10px;
display: inline-block;
margin: 0 4px;
}
#dot-li span:hover{
cursor: pointer;
}
#dot-li .on{
background: red;
}
</style>
</head>
<body>
<div class="main-box">
<ul>
<li class="show"><img src="./images/01.jpg"></li>
<li><img src="./images/02.jpg"></li>
<li><img src="./images/03.jpg"></li>
</ul>
<ul id="dot-li"></ul>
</div>
<script>
var mainBox = document.getElementsByClassName('main-box')[0]
var list = document.getElementsByTagName('li')
var dotli = document.getElementById('dot-li')
var index=0;
var timer;
window.onload = function() {
for (let i = 0; i < list.length; i++) {
var span = document.createElement('span')
dotli.appendChild(span)
}
dotli.children[0].className = 'on'
for (let j = 0; j < dotli.children.length; j++) {
dotli.children[j].addEventListener('click', function(event) {
clearInterval(timer)
if(event.target.getAttribute('class') !=='on') {
index = j
moveImg(list,j)
}
})
}
}
function moveImg(list,index) {
for(var i=0;i<list.length;i++){
if(list[i].className=='show'){//清除li的透明度样式
list[i].className='';
dotli.children[i].className = ''
}
}
list[index].className='show';
dotli.children[index].className = 'on'
}
var nextMove=function(){
index+=1;
if(index>=list.length){
index=0
}
moveImg(list,index);
};
var play=function(){
timer=setInterval(function(){
nextMove();
},3000);
};
play()
mainBox.addEventListener('mouseenter',function(event){
clearInterval(timer)
});
mainBox.addEventListener('mouseleave',function(event){
play()
});
</script>
</script>
</body>
</html>
效果