关于"轮播",为什么我的蓝色框不能被消除?

发布于 2022-09-04 12:38:41 字数 2723 浏览 17 评论 0

各位,帮我看下,为什么蓝色框不能被消除,虽然我已经解决了这个问题,但是,我还是不明白为什么蓝色框不能被消除.谁能帮我一步步分析下JS代码的原理吗?

.......................

这是源代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <script type="text/javascript">
    window.onload= window.onresize= function () {
      document.documentElement.style.fontSize= window.innerWidth/ 40+ "px";
    }
  </script>
  <title>Document</title>
  <style media="screen">
    body,div{
      padding: 0;
      margin: 0;
      font-size: 0;
      letter-spacing: -4px;
    }
    div.father div.wrap .width0{
      width: 0;
    }
      div.father{
        width: 5rem;
        height: 5rem;
        /*overflow: hidden;*/
      }
      div.wrap{
        width: 15rem;
        height: 5rem;
        overflow: hidden;
      }
        div.wrap div{
          display: inline-block;
          vertical-align: top;
          width: 5rem;
          height: 5rem;
          transition: all 1s;
        }
        div div.div1{
          background-color: green;
        }
        div div.div2{
          background-color: yellow;
        }
        div div.div3{
          background-color: blue;
        }
        div.wrap div a img{
          width: 5rem;
          height: 5rem;
        }
  </style>
</head>
<body>

  <div class="father">

    <div class="wrap">
      <div class="div1">
        <!-- <a href="#">
          <img src="./images/youku_03.png" alt="">
        </a> -->
      </div>
      <div class="div2">
        <!-- <a href="#">
          <img src="./images/youku_07.png" alt="">
        </a> -->
      </div>
      <div class="div3">
        <!-- <a href="#">
          <img src="./images/youku_09.png" alt="">
        </a> -->
      </div>
    </div>
  </div>

  <script type="text/javascript">
    var divF= document.querySelector("div.father"),
    divW= divF.querySelector("div.father div.wrap"),
    divs= divW.querySelectorAll("div.wrap div"),
    divH0= divW.querySelector(".width0"),
    index= 0;

    setInterval(function () {
      console.log(index);
      divs[index].classList.add("width0");
      index++;
      if(index> 2){
        index= 0;
        for(var i= 0; i< divs.length; i++){
          divs[i].classList.remove("width0");
        }
      }
    },2000);
  </script>
</body>
</html>

..............
帮我一步步分析一下JS代码的原理就好...先谢谢了...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

往事风中埋 2022-09-11 12:38:41
// 我要把三个方块都藏起来
// 已经藏了两个了

    setInterval(function () {
      console.log(index);  // index = 2, 要藏第三个!
      divs[index].classList.add("width0"); // 第三个藏起来了!
      index++; // index = 3 还有谁!!!
      if(index> 2){  // true 没谁了。。。
        index= 0;  // 回到原点
        for(var i= 0; i< divs.length; i++){
          divs[i].classList.remove("width0"); // 把三个方块都拿出来
        }
      }
    },2000);
    
// 搞了半天第三个方块被你藏起来又拿出来了。。。

解决方案参考:

    setInterval(function () {
      console.log(index);
      
      if(index> 2){
        index= 0;
        for(var i= 0; i< divs.length; i++){
          divs[i].classList.remove("width0");
        }
      } else {
          divs[index].classList.add("width0");
          index++;
      }
    },2000);

另:我觉得你可能需要百度一下javascript怎么打断点

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文