為什么添加了if (timer) { clearInterval(timer) timer=null } 這行代碼 幻燈片不會自動播放 ,鼠標移動過去才會自動播放?
<!doctype html>
<html>
<head>
? ? <meta charset="UTF-8">
<title>Document</title>
<style>
? *{margin:0;
? ? padding:0;
? ? list-style:none;}
? .wrap{height:170px;
? ? ? ? width:490px;
? ? ? ? margin:60px auto;
? ? ? ? overflow: hidden;
? ? ? ? position: relative;
? ? ? ? margin:100px auto;}
? .wrap ul{position:absolute;}?
? .wrap ul li{height:170px;}
? .wrap ol{position:absolute;
? ? ? ? ? ?right:5px;
? ? ? ? ? ?bottom:10px;}
? .wrap ol li{height:20px; width: 20px;
? ? ? ? ? ? ? background:#ccc;
? ? ? ? ? ? ? border:solid 1px #666;
? ? ? ? ? ? ? margin-left:5px;
? ? ? ? ? ? ? color:#000;
? ? ? ? ? ? ? float:left;
? ? ? ? ? ? ? line-height:center;
? ? ? ? ? ? ? text-align:center;
? ? ? ? ? ? ? cursor:pointer;}
? .wrap ol .on{background:#E97305;
? ? ? ? ? ? ? ?color:#fff;}
? </style>
? <script type="text/javascript">
? window.onload=function(){
? ? var wrap=document.getElementById('wrap'),
? ? ? ? pic=document.getElementById('pic').getElementsByTagName('li'),
? ? ? ? list=document.getElementById('list').getElementsByTagName('li'),
? ? ? ? index=0,
? ? ? ? timer=null;
? ? ? // 定義并調用自動播放函數
? ? ? timer=setInterval(qude,2000)
? ? ? function qude(){
? ? ? ?index++;
? ? ? ?if (index>=list.length) {
? ? ? ?index=0
? ? ? ?}
? ? ? ?common(index)
? ? ? ?// console.logo(pic)
? ? ? }
? ? ? if (timer) {
? ? ? ?clearInterval(timer)
? ? ? ?timer=null
? ? ? }
? ? ? // 定義圖片切換函數
? ? ?for (var j = 0; j < list.length; j++) {
? ? ? list[j].id=j;
? ? ? list[j].onmouseover=function(){
? ? ? clearInterval(timer);
? ? ? common(this.id)
? ? ? }
? ? ? list[j].onmouseout=function(){
? ? ? timer=setInterval(qude,2000)
? ? ?}
? ? ?};
? ? ?// 鼠標劃過整個容器時停止自動播放
? ? ?function common(curIndex){
? ? ? // console.logo(curIndex);
? ? ? for (var i = 0; i < list.length; i++) {
? ? ? ?list[i].className="";
? ? ? ?pic[i].style.display="none"
? ? ? ?}
? ? ? ?list[curIndex].className="on"
? ? ? ?pic[curIndex].style.display="block"
? ? ? ?index=curIndex
? ? ?}
? ? ?
? ? ?// 鼠標離開整個容器時繼續播放至下一張
? ??
? ? ?// 遍歷所有數字導航實現劃過切換至對應的圖片
? ?}
? </script>
</head>
<body>
? <div id='wrap'>
? ? <ul id="pic">
? ? ? <li><img src="http://img1.sycdn.imooc.com//54111cd9000174cd04900170.jpg" alt=""></li>
? ? ? <li><img src="http://img1.sycdn.imooc.com//54111dac000118af04900170.jpg" alt=""></li>
? ? ? <li><img src="http://img1.sycdn.imooc.com//54111d9c0001998204900170.jpg" alt=""></li>
? ? ? <li><img src="http://img1.sycdn.imooc.com//54111d8a0001f41704900170.jpg" alt=""></li>
? ? ? <li><img src="http://img1.sycdn.imooc.com//54111d7d00018ba604900170.jpg" alt=""></li> ? ?
? ? </ul>
? ? <ol id="list">
? ? ? <li>1</li>
? ? ? <li>2</li>
? ? ? <li>3</li>
? ? ? <li>4</li>
? ? ? <li>5</li>
? ? </ol>
? </div>
</body>
</html>
2017-08-08
你沒有調用自動播放函數,如果想頁面一加載完畢就自動播放,應該在window。onload()中調用一下自動播放函數, ?這樣試試:
function qude(){
? ? ? ?index++;
? ? ? ?if (index>=list.length) {
? ? ? ?index=0
? ? ? ?}
? ? ? ?common(index)
? ? ? };qude();
或者你把timer=setInterval(qude,2000)與
?if (timer) {
? ? ? ?clearInterval(timer)
? ? ? ?timer=null
? ? ? }
位置換一下,你這樣設置,不就把timer定時器給null了么