无缝连续滚动
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.box {
width: 1000px;
height: 130px;
border: 1px solid #000;
margin: 50px auto;
overflow: hidden;
}
.box ul {
list-style: none;
width: 5000px;
position: relative;
}
.box ul li {
float: left;
margin-right: 10px;
}
</style>
</head>
<body>
<div id="box" 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>
<script>
var box = document.getElementById('box');
var list = document.getElementById('list');
list.innerHTML += list.innerHTML;
var left = 0;
var timer;
move();
function move() {
clearInterval(timer);
timer = setInterval(function () {
left -= 4;
if (left <= - 1260) {
left = 0;
}
list.style.left = left + 'px';
}, 20);
}
box.onmouseenter = function () {
clearInterval(timer);
};
box.onmouseleave = function () {
move();
};
</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>
* {
margin: 0;
padding: 0;
}
.carousel {
width: 650px;
height: 360px;
border: 1px solid #000;
margin: 50px auto;
position: relative;
overflow: hidden;
}
.carousel ul {
list-style: none;
width: 9999px;
position: relative;
left: 0px;
transition: left 0.5s ease 0s;
}
.carousel ul li {
float: left;
}
.carousel .leftbtn {
position: absolute;
left: 20px;
top: 50%;
margin-top: -25px;
width: 50px;
height: 50px;
background-color: blue;
border-radius: 50%;
}
.carousel .rightbtn {
position: absolute;
right: 20px;
top: 50%;
margin-top: -25px;
width: 50px;
height: 50px;
background-color: blue;
border-radius: 50%;
}
</style>
</head>
<body>
<!-- 跑马灯:最后一张需克隆;呼吸:最后一张不需克隆 -->
<div class="carousel">
<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>
<li><img src="./images/beijing/0.jpg" alt="" /></li>
</ul>
<!-- 执行空JS语句 返回的是空或false值 -->
<!-- 把 javascript:; 加在超级链接上可防止链接跳转;而后事件监听顺利执行-->
<a href="javascript:;" class="leftbtn" id="leftbtn"></a>
<a href="javascript:;" class="rightbtn" id="rightbtn"></a>
</div>
<script>
var oLeftbtn = document.getElementById("leftbtn");
var oRightbtn = document.getElementById("rightbtn");
var oList = document.getElementById("list");
var idx = 0;
var lock = true;
oRightbtn.onclick = function () {
if (!lock) return;
oList.style.transition = "left .5s ease 0s";
idx++;
setTimeout(function () {
if (idx > 4) {
oList.style.transition = "none";
oList.style.left = 0;
idx = 0;
}
}, 500);
oList.style.left = -idx * 650 + "px";
lock = false;
setTimeout(function () {
lock = true;
}, 500);
};
oLeftbtn.onclick = function () {
if (!lock) return;
if (idx == 0) {
oList.style.transition = "none";
oList.style.left = -5 * 650 + "px";
setTimeout(function () {
oList.style.transition = "left .5s ease 0s";
idx = 4;
oList.style.left = -idx * 650 + "px";
}, 0);
} else {
idx--;
oList.style.left = -idx * 650 + "px";
}
lock = false;
setTimeout(function () {
lock = true;
}, 500);
};
</script>
</body>
</html>
呼吸轮播图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.carousel {
width: 650px;
height: 360px;
border: 1px solid #000;
margin: 50px auto;
position: relative;
}
.carousel ul {
list-style: none;
}
.carousel ul li {
position: absolute;
top: 0;
left: 0;
opacity: 0;
transition: opacity 1s ease 0s;
}
.carousel ul li:first-child {
opacity: 1;
}
.carousel .leftbtn {
position: absolute;
left: 20px;
top: 50%;
margin-top: -25px;
width: 50px;
height: 50px;
background-color: rgb(28, 180, 226);
border-radius: 50%;
}
.carousel .rightbtn {
position: absolute;
right: 20px;
top: 50%;
margin-top: -25px;
width: 50px;
height: 50px;
background-color: rgb(28, 180, 226);
border-radius: 50%;
}
</style>
</head>
<body>
<div class="carousel">
<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>
<a href="javascript:;" class="leftbtn" id="leftbtn"></a>
<a href="javascript:;" class="rightbtn" id="rightbtn"></a>
</div>
<script>
var leftbtn = document.getElementById('leftbtn');
var rightbtn = document.getElementById('rightbtn');
var list = document.getElementById('list');
var lis = list.getElementsByTagName('li');
var idx = 0;
var lock = true;
rightbtn.onclick = function () {
if (!lock) return;
lock = false;
lis[idx].style.opacity = 0;
idx++;
if (idx > 4) idx = 0;
lis[idx].style.opacity = 1;
setTimeout(function () {
lock = true;
}, 1000);
}
leftbtn.onclick = function () {
if (!lock) return;
lock = false;
lis[idx].style.opacity = 0;
idx--;
if (idx < 0) idx = 4;
lis[idx].style.opacity = 1;
setTimeout(function () {
lock = true;
}, 1000);
}
</script>
</body>
</html>