1、轮播
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.wrapper {
width: 600px;
height: 350px;
margin: 0 auto;
position: relative;
}
img {
width: 100%;
height: 100%;
}
.btn {
width: 150px;
display: flex;
justify-content: space-around;
position: absolute;
left: 225px;
bottom: 10px;
}
.btn span {
display: block;
width: 15px;
height: 15px;
border: 1px solid white;
/* border-radius: 50%; */
}
.active {
background-color: red;
}
</style>
</head>
<body>
<div class="wrapper">
<img src="./imgs/adt1.png" alt="">
<div class="btn">
<span class="active"></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</div>
<script>
var _img = document.querySelector("img");
var _wrapper = document.querySelector(".wrapper");
var _spots = document.querySelectorAll(".btn span");
var imgs = ['./imgs/adt1.png', './imgs/adt2.png', './imgs/adt3.png', './imgs/adt4.png', './imgs/adt5.png']
autoplay();
var id;
var index = 1;
function autoplay() {
id = setInterval(function() {
_img.src = imgs[index]
spots();
index++;
if (index >= 5) {
index = 0;
}
}, 2000)
}
function spots() {
for (var i = 0; i < _spots.length; i++) {
if (i == index) {
_spots[i].className = "active"
} else {
_spots[i].className = ""
}
}
}
//悬浮时停止
_wrapper.onmouseover = function() {
clearInterval(id);
}
//离开时继续
_wrapper.onmouseout = function() {
autoplay();
}
</script>
</body>
</html>
效果展示:
2、轮播-替换src
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.wrapper{
width: 600px;
height: 350px;
margin: 0 auto;
position: relative;
}
img{
width: 100%;
height: 100%;
}
.btn{
width:150px;
display: flex;
justify-content: space-around;
position: absolute;
left:225px;
bottom:10px;
}
.btn span{
display: block;
width:15px;
height:15px;
border: 3px solid white;
border-radius: 50%;
}
.active{
background-color: red;
}
</style>
</head>
<body>
<div class="wrapper">
<img src="./imgs/1.png" alt="">
<div class="btn">
<span class="active"></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</div>
<script>
var _img=document.querySelector("img");
var _wrapper=document.querySelector(".wrapper");
var _spots=document.querySelectorAll(".btn span");
var imgs=['./imgs/1.png','./imgs/2.png','./imgs/3.png','./imgs/4.png','./imgs/5.png']
//自动播放
autoplay();
var id;
var index=1;
function autoplay(){
id=setInterval(function(){
_img.src=imgs[index];
//控制小圆点
spots();
index++;
if(index>=5){
index=0;
}
},2000)
}
//小圆点变化
function spots(){
for (var i = 0; i < _spots.length; i++) {
if(i==index){
_spots[i].className="active"
}else{
_spots[i].className=""
}
}
}
//悬浮时停止
_wrapper.onmouseover=function(){
clearInterval(id);
}
//离开时继续
_wrapper.onmouseout=function(){
autoplay();
}
</script>
</body>
</html>
效果展示:
3、轮播-滚动条
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.wrapper{
width: 600px;
height: 350px;
overflow: hidden;
margin: 0 auto;
}
img{
width: 600px;
height: 350px;
}
.contain{
display: flex;
width: 3600px;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="contain">
<img src="./imgs/1.png"/>
<img src="./imgs/2.png"/>
<img src="./imgs/3.png"/>
<img src="./imgs/4.png"/>
<img src="./imgs/5.png"/>
<img src="./imgs/1.png"/>
</div>
</div>
<script>
var _wrapper=document.querySelector(".wrapper");
var index=0;
var num=setInterval(function(){
//滚动一张
var moveLength=0; //用标识是否走完一张
var id=setInterval(function(){
_wrapper.scrollLeft+=8;
moveLength+=8
if(moveLength>=600){
clearInterval(id);
}
},20) //一张需要2250毫秒
index++;
// 走完所有下标和滚动都要从0开始
if(index>=6){
index=0;
_wrapper.scrollLeft=0;
}
},3000)
</script>
</body>
</html>
效果展示:
4、轮播-定位left
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.wrapper{
width: 600px;
height: 350px;
overflow: hidden;
margin: 0 auto;
position: relative;
}
img{
width: 600px;
height: 350px;
}
.contain{
display: flex;
width: 3000px;
position: absolute;
left: 0;
top: 0;
}
.btn{
width:150px;
display: flex;
justify-content: space-around;
position: absolute;
left:225px;
bottom:10px;
}
.btn span{
display: block;
width:15px;
height:15px;
border: 3px solid white;
border-radius: 50%;
}
.wrapper a{
text-decoration: none;
font-size: 50px;
color: red;
position: absolute;
top: 35%;
}
.wrapper a:nth-of-type(1){
left: 10px;
}
.wrapper a:nth-of-type(2){
right: 10px;
}
.active{
background-color: red;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="contain">
<img src="./imgs/1.png"/>
<img src="./imgs/2.png"/>
<img src="./imgs/3.png"/>
<img src="./imgs/4.png"/>
<img src="./imgs/5.png"/>
</div>
<div class="btn">
<span class="active"></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
<a href="javascript:void(0);"><</a>
<a href="javascript:void(0);">></a>
</div>
<script>
var _wrapper=document.querySelector(".wrapper");
var _contain=document.querySelector(".contain");
//下一张按钮
var _nextPic=document.querySelector(".wrapper a:nth-of-type(2)");
// 上一张按钮
var _prevPic=document.querySelector(".wrapper a:nth-of-type(1)");
//获取所有小圆点
var _spots=document.querySelectorAll(".btn span");
// 下一张
_nextPic.onclick=function(){
next_pic();
}
var index=0;
function next_pic(){
_contain.style.left=_contain.offsetLeft-600+"px";
if(_contain.offsetLeft<=-3000){
_contain.style.left=0;
}
index++;
if(index>4){
index=0;
}
spots();
}
// 上一张
_prevPic.onclick=function(){
prev_pic();
}
function prev_pic(){
_contain.style.left=_contain.offsetLeft+600+"px";
if(_contain.offsetLeft>0){
_contain.style.left=-2400+"px";
}
index--;
if(index<0){
index=4;
}
spots();
}
//自动轮播
autoplay();
var id;
function autoplay(){
id=setInterval(function(){
next_pic();
},2000)
}
//小圆点变化
function spots(){
for (var i = 0; i < _spots.length; i++) {
if(i==index){
_spots[i].className="active"
}else{
_spots[i].className=""
}
}
}
//悬停控制
_wrapper.onmouseover=function(){
clearInterval(id);
}
_wrapper.onmouseout=function(){
autoplay();
}
</script>
</body>
</html>
效果展示:
5、轮播-悬浮定位left
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.wrapper{
width: 600px;
height: 350px;
overflow: hidden;
margin: 0 auto;
position: relative;
}
img{
width: 600px;
height: 350px;
}
.contain{
display: flex;
width: 3000px;
position: absolute;
left: 0;
top: 0;
}
.btn{
width:150px;
display: flex;
justify-content: space-around;
position: absolute;
left:225px;
bottom:10px;
}
.btn span{
display: block;
width:15px;
height:15px;
border: 3px solid white;
border-radius: 50%;
}
.wrapper a{
text-decoration: none;
font-size: 50px;
color: red;
position: absolute;
top: 35%;
}
.wrapper a:nth-of-type(1){
left: 10px;
}
.wrapper a:nth-of-type(2){
right: 10px;
}
.active{
background-color: red;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="contain">
<img src="./imgs/1.png"/>
<img src="./imgs/2.png"/>
<img src="./imgs/3.png"/>
<img src="./imgs/4.png"/>
<img src="./imgs/5.png"/>
</div>
<div class="btn">
<span class="active"></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
<a href="javascript:void(0);"><</a>
<a href="javascript:void(0);">></a>
</div>
<script>
var _wrapper=document.querySelector(".wrapper");
var _contain=document.querySelector(".contain");
var _btn=document.querySelector(".btn");
//下一张按钮
var _nextPic=document.querySelector(".wrapper a:nth-of-type(2)");
// 上一张按钮
var _prevPic=document.querySelector(".wrapper a:nth-of-type(1)");
var _btn=document.querySelector(".btn");
//获取所有小圆点
var _spots=document.querySelectorAll(".btn span");
// 下一张
_nextPic.onclick=function(){
next_pic();
}
var index=0;
function next_pic(){
_contain.style.left=_contain.offsetLeft-600+"px";
if(_contain.offsetLeft<=-3000){
_contain.style.left=0;
}
index++;
if(index>4){
index=0;
}
spots();
}
// 上一张
_prevPic.onclick=function(){
prev_pic();
}
function prev_pic(){
_contain.style.left=_contain.offsetLeft+600+"px";
if(_contain.offsetLeft>0){
_contain.style.left=-2400+"px";
}
index--;
if(index<0){
index=4;
}
spots();
}
//自动轮播
autoplay();
var id;
function autoplay(){
id=setInterval(function(){
next_pic();
},2000)
}
//小圆点变化
function spots(){
for (var i = 0; i < _spots.length; i++) {
if(i==index){
_spots[i].className="active"
}else{
_spots[i].className=""
}
}
}
//悬停控制
_wrapper.onmouseover=function(){
clearInterval(id);
}
_wrapper.onmouseout=function(){
autoplay();
}
//悬浮小圆点更新图片
_btn.onmouseover=function(event){
//获取悬浮的小圆点
var target=event.srcElement||event.target;
if(target.nodeName=='SPAN'){
//查询小圆点下标
var n=Array.from(_spots).findIndex(function(tag){
return tag==target
})
//更新下标
index=n;
//更新位移
_contain.style.left=-600*n+"px";
//更新颜色
spots();
}
}
</script>
</body>
</html>
效果展示: