原生js实现直接切换轮播图

css

ul{
	list-style: none;
	padding:0;margin:0;
}
.focus img{
	display: block;
}
.focus{
	position:relative;
	overflow:hidden;
	height: 320px;
}
.focus ul{
	position:absolute;
	overflow:hidden;
}
 .focus ul li{
 	float:left;
 }
.focus .page{
	position:absolute;
	right:0;
	bottom:0;
	padding:10px;
}
.focus .page span{
	display:inline-block;
	margin:0 5px;
	width:30px;
	height:30px;
	line-height:30px;
	background-color:rgba(0,0,0,.6);
	text-align:center;
	color:#fff;
	border-radius: 50%;
	box-shadow:0 0 10px rgba(0,0,0,.5);
}
.focus .page span.active{
	background-color: rgba(255,0,0,.8);
}

html

<div class="focus">
        <ul>
            <li><img src="../images/001.jpg"></li>
            <li><img src="../images/002.jpg"></li>
            <li><img src="../images/003.jpg"></li>
        </ul>
    </div>

js

var focus = document.querySelector(".focus");
var ulbox = focus.children[0];
 var firstImg = ulbox.children[0].children[0];
 var len = ulbox.children.length;
 var idx = 0;
 // 1.focus呈现图片,宽度为第一张图片的宽度。ul的宽度=图片的宽度*图片张数
 //  * 必须等待第一张图片加载完成后,再获取宽度
firstImg.onload = function(){
   focus.style.width = firstImg.offsetWidth + 'px';
   ulbox.style.width = firstImg.offsetWidth * len + 'px';
 }
 // 2.开启定时器,定义一个索引(0、1、2)改变,从而改变的是ulbox的left值
setInterval(function(){
        idx++;
        if(idx >= len){
             idx = 0;
          }
         ulbox.style.left = -firstImg.offsetWidth *idx + 'px';
 },1000) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值