慕數(shù)據(jù)5775487
2016-12-10 23:59:53
<!DOCTYPE?html>
<html>
<head>
<meta?charset="utf-8"?/>
<title></title>
<style>
*{margin:0;padding:0;text-decoration:none;}
body{padding:20px}
#container{width:600px;height:400px;border:3px?solid?#333;overflow:hidden;position:relative;margin:0?auto;}
#list{width:4200px;height:400px;position:absolute;z-index:1;}
#list?img{float:left;}
#buttons{position:absolute;width:100px;height:10px;bottom:20px;left:250px;z-index:2;}
#buttons?span{cursor:pointer;display:block;float:left;width:10px;height:10px;border:1px?solid?#FFF;border-radius:50%;background:#333;margin-right:5px;}
#buttons?.on?{??background:?orange;}
.arrow{position:absolute;display:none;width:40px;height:40px;line-height:40px;z-index:2;font-size:36px;text-align:center;font-weight:bold;top:180px;background-color:rgba(0,0,0,.3);color:#FFF;}
#prev{left:20px;}
#next{right:20px;}
#container:hover?.arrow{display:block;}
.arrow:hover{background-color:rgba(0,0,0,.7);}
</style>
<script>
window.onload?=?function(){
var?container?=?document.getElementById('container');
var?list?=?document.getElementById('list');
var?buttons?=?document.getElementById('buttons').getElementsByTagName('span');
var?prev?=document.getElementById('prev');
var?next?=?document.getElementById('next');
var?index?=?1;
var?timer;
var?animated=false;
function?showBtn(){
??????? for(var?i=0;i<buttons.length;i++){
??????? if(buttons[i].className=='on'){
??????? buttons[i].className='';
??????? }
???????
??????? }
??????? buttons[index-1].className='on';
??????? }
function?animate(offset){
animated=true;
var?newL=parseInt(list.style.left)+offset;
var?time=600;
var?interval=10;
var?speed=offset/(time/interval);
function?go(){
if((speed<0?&&?parseInt(list.style.left)>newL)?||?(speed>0?&&?parseInt(list.style.left)<newL)){
list.style.left=parseInt(list.style.left)+speed+'px';
setTimeout(go,interval);
}else{
animated=false;
list.style.left=newL+'px';
if(newL>-600){
list.style.left=-3000+'px';
}else?if(newL<-3000){
list.style.left=-600+'px';
}
}
}
go();
}
function?play(){
timer=setInterval(function(){
next.onclick();
},3000);
}
function?stop(){
clearInterval(timer);
}
next.onclick=function(){
if(index==5){
index=1;
}else{
index+=1;
}
if(!animated){
animate(-600);
}
showBtn();
}
prev.onclick=function(){
if(index==1){
index=5;
}else{
index-=1;
}
if(!animated){
animate(600);
}
showBtn();
}
for(var?i=0;i<buttons.length;i++){
buttons[i].onclick=function(){
var?myindex=parseInt(this.getAttribute('index'));
var?offset=-600*(myindex-index);
if(!animated){
animate(offset);
}
index=myindex;
showBtn();
}
}
container.onmouseover=stop();
container.onmouseout=play();
play();
}
</script>
</head>
<body>
<div?id="container">
<div?id="list"?style="left:-600px">
<img?src="img/5.jpg"?alt=""?title="">
<img?src="img/1.jpg"?alt=""?title="">
<img?src="img/2.jpg"?alt=""?title="">
<img?src="img/3.jpg"?alt=""?title="">
<img?src="img/4.jpg"?alt=""?title="">
<img?src="img/5.jpg"?alt=""?title="">
<img?src="img/1.jpg"?alt=""?title="">
</div>
<div?id="buttons">
<span?index="1"?class="on"></span>
<span?index="2"?class=""></span>
<span?index="3"?class=""></span>
<span?index="4"?class=""></span>
<span?index="5"?class=""></span>
</div>
<a?href="#"?id="prev"?class="arrow"><</a>
<a?href="#"?id="next"?class="arrow">></a>
</div>
</body>
</html>
1 回答
已采納

心有猛虎_細(xì)嗅薔薇
TA貢獻119條經(jīng)驗 獲得超250個贊
自動輪播時圖片切換一下張:
????????????????next.onclick=function(){ ????????????????????if(index==5){ ????????????????????????index=1; ????????????????????}else{ ????????????????????????index+=1; ????????????????????} ????????????????????if(animated){ ????????????????????????return; ????????????????????} ????????????????????showBtn(); ????????????????????animate(-600); ????????????????}
鼠標(biāo)懸停暫停播放:
????????????????container.onmouseover=stop; ????????????????container.onmouseout=play;
1.出現(xiàn)切換兩張的問題是因為在自動播放時animated被單獨地進行設(shè)置.
2.之所以計時器取消不掉是因為涉及到了回調(diào)函數(shù),事件觸發(fā)時才會調(diào)用stop方法,要寫成方法名stop。
添加回答
舉報
0/150
提交
取消