自动 点击切换 按钮切换 轮播无缝选项卡 ----原生js

时间:2024-05-21 13:36:02
 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="智能社 - zhinengshe.com" />
<meta name="copyright" content="智能社 - zhinengshe.com" />
<meta name="description" content="智能社是一家专注于web前端开发技术的公司,目前主要提供JavaScript培训和HTML5培训两项服务,同时还推出了大量javascript基础知识教程,智能课堂为你带来全新的学习方法和快乐的学习体验。" />
<title>智能社— http://www.zhinengshe.com</title>
<style>
*{ margin:; padding:; list-style:none;}
#box{ width:534px; height:300px; position:relative; margin:50px auto; overflow:hidden;}
#box ul{ position:absolute; left:; top:;}
#box ul li{ float:left; width:534px; height:300px;}
#box ul li img{ height:300px;} #box a{ transition:.2s all ease;}
#box .prev,#box .next{position:absolute; top:%; z-index:; height:80px; line-height:80px; background:rgba(,,,0.6); color:#fff; width:80px; text-align:center; margin-top:-40px; display:none;}
#box .prev{ left:;}
#box .next{ right:;}
#box a:hover{ background:rgba(,,,0.4);} #box ol{ position:absolute; width:120px; left:%; margin-left:-60px; bottom:10px;}
#box ol li{ width:20px; height:20px; background:#f60; float:left; margin:2px; text-align:center; text-indent:-9999px; border-radius:%;}
#box ol li.active{ background:#fff;}
</style>
<script>
window.onload=function(){
var oBox=document.getElementById('box');
var oPrev=oBox.children[];
var oNext=oBox.children[];
var oUl=oBox.getElementsByTagName('ul')[];
var aLi=oUl.children;
var oOl=oBox.getElementsByTagName('ol')[];
var aBtn=oOl.children; //先复制一份
oUl.innerHTML+=oUl.innerHTML;
//算宽度
oUl.style.width=aLi.length*aLi[].offsetWidth+'px'; var W=oUl.offsetWidth/; //移入显示俩按钮
oBox.onmouseover=function(){
clearInterval(timer);
oPrev.style.display='block';
oNext.style.display='block';
}
oBox.onmouseout=function(){
timer=setInterval(function(){
iNow--;
tab();
},);
oPrev.style.display='none';
oNext.style.display='none';
}
//覆模循环一一对应。
var iNow=; //选项卡
for(var i=; i<aBtn.length; i++){
(function(index){
aBtn[i].onclick=function(){ if(index== && iNow%aBtn.length==aBtn.length-){//循环一圈后,index=0;iNow%aBtn.length=最后一张图片的时候。iNow都处于
//++;
iNow++;
}
if(index==aBtn.length- && iNow%aBtn.length==){//循环一圈后,index=最后一个下标;iNow%aBtn.length=第一张图片的时候。iNow都处于
//--;
iNow--;
} if(iNow>){
iNow=Math.floor(iNow/aBtn.length)*aBtn.length+index;//Math.floor(iNow/aBtn.length)*aBtn.length 和newMove 对应起来,只要开始动就得走一屏幕。对应的按钮也在对应着变化。
}else{
if(index== && iNow%aBtn.length==-){
iNow++;
}
iNow=Math.floor(iNow/aBtn.length)*aBtn.length+index;
}
tab();
document.title=iNow;
}
})(i);
} function tab(){
for(var i=; i<aBtn.length; i++){
aBtn[i].className='';
}
if(iNow<){
aBtn[(iNow%aBtn.length+aBtn.length)%aBtn.length].className='active';
}else{
aBtn[iNow%aBtn.length].className='active';
}
//oUl.style.left=-iNow*aLi[0].offsetWidth+'px';
console.log(iNow)
startMove(oUl,-iNow*aLi[].offsetWidth);
} //点击
oNext.onclick=function(){
iNow++;
tab(); }
var timer=null;
timer=setInterval(function(){
iNow--;
tab();
},); oPrev.onclick=function(){
iNow--;
tab(); }
var left=;
function startMove(obj,iTarget){
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var iSpeed=(iTarget-left)/;// 总的距离/8得到速度。
//判断speed 正负,来取舍不同的值,不能为小数,每次都要求走一个li宽度。
iSpeed=iSpeed>?Math.ceil(iSpeed):Math.floor(iSpeed); if(left==iTarget){//判断l=iTaegrt要关闭定时器
clearInterval(obj.timer);
}else{
left+=iSpeed;
if(left<){
obj.style.left=left%W+'px';
}else{
obj.style.left=(left%W-W)%W+'px';
}
} },);
}
}
</script>
</head> <body>
<div id="box">
<a href="javascript:;" class="prev">prev</a>
<a href="javascript:;" class="next">next</a>
<ul>
<li><img src="img/0.jpg"></li>
<li><img src="img/1.jpg"></li>
<li><img src="img/2.jpg"></li>
<li><img src="img/3.jpg"></li>
<li><img src="img/4.jpg"></li>
</ul>
<ol>
<li class="active"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>
</div>
</body>
</html>