作业题定时器没效果

作业题定时器没效果

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>作业练习</title>

</head>

<link rel="stylesheet" href="css/css.css">

<body>

<!-- 导航栏部分 -->

<div class="content">

          <ul>

           <li class="active"><a href="">首页</a></li>

           <li><a href="">点击看看</a></li>

           <li><a href="">会自动的</a></li>

           <li><a href="">我的网站</a></li>

          </ul>

</div>

<!-- 轮播图部分 -->

<div class="banner" id="banner">

      <div class="banner-slide slide-active">

          <a href="">

               <img src="img/1.jpg" alt="">

          </a>

      </div>

      <div class="banner-slide">

          <a href="">

               <img src="img/3.jpg" alt="">

          </a>

      </div>

      <div class="banner-slide">

          <a href="">

               <img src="img/4.jpg" alt="">

          </a>

      </div>

      <div class="banner-slide">

          <a href="">

               <img src="img/5.jpg" alt="">

          </a>

      </div>

</div>

<script type="text/javascript" src="js/demo.js"></script>

</body>

</html>


//css部分


*{

margin: 0;

padding: 0

}

a{

text-decoration:none;

color: #666;

     

}

li{

list-style-type:none;


}


html,body{

width: 100%;

height: 100%;

}


.content{

width: 1200px;

height: 50px;

line-height: 50px;

background: #fff;

margin: 0 auto;

}


.content li{

float: left;

font-size:22px;

}

.content li a{

display: block;

width: 300px;

display: flex;

flex-direction: row;

justify-content: center;


}


li.active{

background-color: #FFCC00;

}


.banner{

width: 1200px;

height:460px;

overflow: hidden;

margin: 0 auto;

position: relative;

}

.banner-slide{

position: absolute;

display: none;

}

.slide-active{

display: block;

}


//js部分

var timer=null, 

    index=0, 

    pics=document.getElementById('banner').getElementsByTagName("div"),

len=pics.length;


function slideImg(){

// 鼠标划过清除定时器,离开继续

pics.onmouseover=function(){

        // 绑定事件,鼠标划过清除定时器

        if(timer){

        clearInterval(timer);

        }

}

    pics.onmouseout=function(){

    timer=setInterval(function(){

             index++;

              if(index>=len){

            index=0;

            }

            // 调用切换图片函数

         chageImg()

    },3000);

    }

    pics.onmouseout();

}

    // 图片切换

 function chageImg(){

     // 遍历banner下的所有div,将其隐藏

  for(var i=0;i<len;i++){

  pics[i].style.display="none";

  }

  // 通过索引找到当前div,将其显示

  pics[index].style.display="block";

 }

    slideImg();

定时器添加了没效果  

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

你好,虽然说区域是相同的,但是内容并不同呀,而且获取到的pics是一个集合哟,其中有好几张图片,并不是具体的元素哟。

祝学习愉快~

好帮手慕糖 2017-10-16 15:37:17

你好,把鼠标移入移出的事件绑定为banner元素,不要绑定给下面的图片元素。不过建议:最后能够在html中添加个盒子,包裹整体的图片即选项卡部分,然后把移入移出事件绑定给该元素。因为后面不是还要设置选项卡移入移出的时候,也要停止或者继续切换嘛,可以在这里统一设置了。

祝学习愉快~

  • 提问者 慕用9253382 #1
    1、确实是你说的这个问题 改了之后就有效果了 只是不明白为什么不能设在底下包裹图片的div里,设置的大小区域都是相等的,那鼠标控制范围不也一样么? 2、我之前设置结构的时候没有把选项卡考虑就去,没做大盒子控制,我现在给选项卡部分加个鼠标经过选项卡清除定时器应该也是可以实现效果的
    2017-10-16 16:04:57
好帮手慕糖 2017-10-16 14:28:02

你好,1、最后slideImg函数的调用后面的分号是在中文状态下输入的,要改为英文状态下的。

2、计时器是生效的哟,按照如上修改之后,图片即可切换,不过选项卡是由于没有设置所以没有变化。这里可以把选项卡的改变也补充下。

3、如下图,代码中的a链接,没有链接地址,会导致单击的时候刷新,所以就会显示第一张,建议:可写为href="#"

http://img1.sycdn.imooc.com/climg/59e4516b0001cf8802680724.jpg

祝学习愉快~

  • 提问者 慕用9253382 #1
    我刚才可能描述错误了 不是定时器不生效 是添加的onmouseover和.onmouseout事件没有生效 鼠标划过轮播图的时候应该是停止 离开的时候是继续 但是我绑定的没生效 不知道是什么原因 您再帮我看看呗???
    2017-10-16 14:45:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师