一、无缝连接轮播
<!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>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
.box {
width: 700px;
height: 130px;
overflow: hidden;
margin: 100px auto;
}
.box ul {
list-style-type: none;
display: flex;
position: relative;
left: 0;
text-align: center;
}
.box ul li {
width: 200px;
height: 130px;
/* margin-right: 10px; */
}
</style>
</head>
<body>
<div class="box">
<ul id='list'>
<li><img src="./images//number/0.png" alt=""></li>
<li><img src="./images//number/1.png" alt=""></li>
<li><img src="./images//number/2.png" alt=""></li>
<li><img src="./images//number/3.png" alt=""></li>
<li><img src="./images//number/4.png" alt=""></li>
<li><img src="./images//number/5.png" alt=""></li>
</ul>
</div>
</body>
<script>
var list = document.getElementById('list')
var listClone = list.cloneNode(true)
list.innerHTML += listClone.innerHTML
var left = 0
move()
var timer
function move() {
clearInterval(timer);
timer = setInterval(() => {
left -= 4
if (left <= -1200) {
left = 0
}
list.style.left = left + 'px'
}, 20)
}
list.onmouseenter = function () {
clearInterval(timer)
}
list.onmouseleave = function () {
move()
}
</script>
</html>
一、跑马灯轮播
<!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>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
.box {
width: 650px;
height: 360px;
margin: 100px auto;
overflow: hidden;
position: relative;
}
.box ul {
display: flex;
list-style-type: none;
transition: all .5s ease 0s;
position: relative;
left: 0;
}
.btn {
position: absolute;
width: 50px;
height: 50px;
background-color: aquamarine;
top: 50%;
margin-top: -25px;
border: 0px;
border-radius: 50%;
}
.left {
left: 5px;
}
.rigth {
right: 5px;
}
</style>
</head>
<body>
<div class="box">
<ul id='list'>
<li> <img src="./images/beijing/0.jpg" alt=""></li>
<li> <img src="./images/beijing/1.jpg" alt=""></li>
<li> <img src="./images/beijing/2.jpg" alt=""></li>
<li> <img src="./images/beijing/3.jpg" alt=""></li>
<li> <img src="./images/beijing/4.jpg" alt=""></li>
</ul>
<button class="left btn" onclick="toLeft()"></button>
<button class="rigth btn" onclick="toRight()"></button>
</div>
<script>
var list = document.getElementById('list')
var cloneFirstNode = list.firstElementChild.cloneNode(true)
list.append(cloneFirstNode)
var flag = 0
var lock = true
function toRight() {
if (!lock) return
lock = false
list.style.transition = 'all .5s ease 0s'
flag++
console.log(flag)
if (flag > 4) {
setTimeout(_ => {
list.style.transition = 'none'
flag = 0
list.style.left = 0 + 'px'
}, 500)
}
list.style.left = -650 * flag + 'px'
setTimeout(_ => {
lock = true
}, 500)
}
function toLeft() {
if (!lock) return
lock = false
flag--
if (flag < 0) {
list.style.transition = 'none'
list.style.left = -650 * 5 + 'px'
setTimeout(_ => {
list.style.transition = 'all .5s ease 0s'
flag = 4
list.style.left = -650 * flag + 'px'
}, 0)
} else {
list.style.left = -650 * flag + 'px'
}
setTimeout(_ => {
lock = true
}, 500)
}
</script>
</body>
</html>
三、呼吸轮播
提示: 类似案例二。效果是淡入淡出
<!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>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
.box {
width: 650px;
height: 360px;
margin: 100px auto;
position: relative;
}
.box ul {
list-style-type: none;
transition: all .5s ease 0s;
}
.box ul li {
transition: all 0.5s ease 0s;
opacity: 0;
position: absolute;
left: 0;
top: 0;
}
.box ul>li:first-child {
opacity: 1;
}
.btn {
position: absolute;
width: 50px;
height: 50px;
background-color: aquamarine;
top: 50%;
margin-top: -25px;
border: 0px;
border-radius: 50%;
}
.left {
left: 5px;
}
.rigth {
right: 5px;
}
</style>
</head>
<body>
<div class="box">
<ul id='list'>
<li> <img src="./images/beijing/0.jpg" alt=""></li>
<li> <img src="./images/beijing/1.jpg" alt=""></li>
<li> <img src="./images/beijing/2.jpg" alt=""></li>
<li> <img src="./images/beijing/3.jpg" alt=""></li>
<li> <img src="./images/beijing/4.jpg" alt=""></li>
</ul>
<button class="left btn" onclick="toLeft()"></button>
<button class="rigth btn" onclick="toRight()"></button>
</div>
<script>
var list = document.getElementById('list').children
var flag = 0
var lock = true
function toRight() {
if (!lock) return
lock = false
list[flag].style.opacity = 0
flag++
if (flag > 4) {
flag = 0
}
list[flag].style.opacity = 1
setTimeout(_ => {
lock = true
}, 500)
}
function toLeft() {
if (!lock) return
lock = false
list[flag].style.opacity = 0
flag--
console.log(flag)
if (flag < 0) {
flag = 4
}
list[flag].style.opacity = 1
setTimeout(_ => {
lock = true
}, 500)
}
</script>
</body>
</html>