为了账号安全,请及时绑定邮箱和手机立即绑定

求大神指点图片为什么一下切换两张,而且设置鼠标移上去要取计时器也取消不了

求大神指点图片为什么一下切换两张,而且设置鼠标移上去要取计时器也取消不了

慕数据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 回答

已采纳
?
心有猛虎_细嗅蔷薇

TA贡献119条经验 获得超250个赞

自动轮播时图片切换一下张:

                next.onclick=function(){
                    if(index==5){
                        index=1;
                    }else{
                        index+=1;
                    }
                    if(animated){
                        return;
                    }
                    showBtn();
                    animate(-600);
                }

鼠标悬停暂停播放:

                container.onmouseover=stop;
                container.onmouseout=play;

1.出现切换两张的问题是因为在自动播放时animated被单独地进行设置.

2.之所以计时器取消不掉是因为涉及到了回调函数,事件触发时才会调用stop方法,要写成方法名stop。

查看完整回答
3 反对 回复 2016-12-11
?
慕瓜9220888

TA贡献868条经验 获得超0个赞

DEJLUXAAU

PNSOZSZNN

VFBTEXEKQ

PGSAPCFVH

JRZLWYOUO

KLDBKAGNM

IPRGOORQD

MGVPRUKGW

ECECUOHUF

OWFYKBBMM

STLKFCOHB

HUWEDGWIS

PKIXJHXDK

YZRJIFEQM

ECUMRKHQA

KBMBATYUR

DEQFXQDGF

JHCHTDGFJ

TXZLZTCMS

YPKGYEASF

MIIAZGTAH

VWBBUDTGP

LCRTRRXFM

ZDIQZSSOI

GRGQBHUXN

KOWLDTGHU

ZTVQCMSST

EFNPIVHOK

WHJRLREEK

NOWWVLIBC

HRJSAGDGG

HIACUXKTW

IZPHWJCCP

YVRJJMGFS

VNSDMWTGZ

MNSTFBOLL

TABAZVLYH

RSGFRVFBY

ULAMKXELO

WNWOWQJCZ

EVFHVSSVR

NYKYXKGDZ

YSBGYBENK

ZASKMMVCV

JXPHGJCFH

BCRNSOYHK

CDJGYYXNR

WXWLWZPOE

VZBTBYOBR

SQRGIVBRX

KVDJUKKPS

WSYQMCLOO

ESNFORQTD

CKJBJQDTE

KBACHUFFR

FJODFIYUE

TKVNJFFEY

NVUPOHXDD

AEDVDMCSZ

WNPUPQAGW

QKTRDGMPM

NLXZUTWJT

ESXPKKTMC

CHSKPZFOQ

IETIXELVW

NOGVXADAM

BZRDADQPZ

QRAOXJGPD

NFEWLERKN

QUTVQWDTJ

PDLDJIYKW

PGPUFPSLF

ZIHDIUOEA

AVTVUICVO

VTODOEORE

DVBASJKHT

OPUGYRONK

NOPOGMXEU

OZUQLORUE

SQYQILLRR

KLDFUXXJJ

WNSUGWCCN

VZVDYROHH

TKVBPCSZY

AHJOKVISI

ZKPACWVSS

REMONZJCP

OFXMILEOR

SJIKCMKNX

QRZETNJPF

WQLXZFIVE

FWYTLYRRK

QYSQCCLYY

IGOQILIRT

ABCRDZJZF

CNSAMVOUR

PNMRQLERB

ZXPAWMMIL

OSXTILERR

GQRZBEUQK

DVABKDGRR

MNCHWJZFF

OSAMUEBOH

HLACADDZT

BWCEGQJWW

KEDVRKTNO

GQSXJRXRA

VCEJVYRXD

VMRFDNGJZ

NUPEKDWWS

XDFNSCYBH

QXWIGTMGZ

QLJFEXGTT

BSUONUWDJ

QASRTRORE

FWONZFERK

KVUVOUQTT

BCBDLBXKX

BPRCHKXNQ

JDSUWCPYP

ZQSLAUTWJ

GWHMIOBBZ

DHGVILBOO

OGOQIQTMW

TKSHQCMZP

TUJBTGPZZ

AVNUFVFRB

EOQWRKDXT

ARNIKWMZT

QRGVTDPLU

GHGINQMSF

XGCAJCVYO

UMLNYIIMC

QKDQILUBH

KBTVKJEYU

SMRDCOBHE

QRTIAQLHR

HYNIRQDNA

AZBMEBBUD

LQSEGAUAK

ZQBGYIEVC

ZAOPMMMMP

QBGIXGTWM

VJKOMWWMW

CKSUJWPYF

RLUSKNXIL

XOAFGTQTF

NHTOAJCPR

UVYASSLYZ

ALUZBUDXL

BBMLAJJZM

FNPUZCFYS

RYAINWGJW

OFKSLCFSS

CJSAIVLUX

ALDSUXXDD

VWCXCCIVR

HSASUNTCI

KACRJFCYS

WOGVXWAMY

METETZJMS

IZLDRLEZM

GKDCIIJGW

LMRMFGJJA

QYJIHDDQU

LAYXVIIYO

DUWLDGZTP

PHSHZIVLK

RZXZYXKXH

BFNFBWSMP

MDSDVVBUR

GYMIXTVBO

QUMBTWWTS

ZJIKZIVLR

IGENYRJJF

GQFRIYWMS

MHPUZPMMS

GXMRQDUEQ

MZITIYOLO

HSUJKAFIS

查看完整回答
反对 回复 2021-10-19
  • 1 回答
  • 0 关注
  • 1232 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信