【问题标题】:Imageslider reaches the End and goes to nowhere图像滑块到达尽头,无处可去
【发布时间】:2021-02-27 16:32:37
【问题描述】:

我有一个图片滑块,里面有 5 张图片。单击按钮后,滑块移动到下一个图像。当到达终点时,它无处可去。我的目标是在滑块结束后显示第一张图片。

          <button class="btn">Test</button>
        </div>
      </body>
      <script>
        let button = document.querySelector(".btn");
        let slide = document.querySelector(".s1");
        let slideEl = document.querySelectorAll(".slide");
        let move = 0;

        button.addEventListener("click", () => {
          move -= 20;
          console.log(slideEl.length - 1);
          for (var i = 0; i < slideEl.length; i++) {
            slide.style.marginLeft = move + "%";
            if (i >= slideEl.length - 1) {
              console.log(slideEl.length - 1);
              slide.style.marginleft = "100%";
            }
          
          }
        });
      </script>

【问题讨论】:

  • 看起来您从 marginLeft = 0 开始,但最后将其设置为 100%。尝试再次将其设置为 0。还要注意重置语句中 marginLeft 中的大写“L”。
  • 感谢您的回答,但如果我使用 0,单击按钮后它不会移动。
  • 我认为您的设置有误。如果没有看到您的 HTML 代码,我无法确定,但每次您按下按钮时,Javascript 都会遍历所有 5 个元素。我假设您想将图像向左移动 20%。每次点击。在这种情况下使用:button.addEventListener("click", () =&gt; { move -= 20; console.log(slideEl.length - 1); slide.style.marginLeft = move + "%"; if (move &lt;= -100) { console.log(slideEl.length - 1); move = 0; slide.style.marginLeft = "0"; } });
  • 当我做 slide.style.marginLeft = "0";当我点击按钮时它不再移动了。

标签: javascript css image slider


【解决方案1】:
  move -= 20;
  console.log(move);
  slide.style.marginLeft = move + "%";
  if (move <= -80) {
    move += 100;
  }

【讨论】:

  • 稍微解释一下可能会有所帮助。问题是什么?您的代码是如何解决的?
  • 代码转储不能提供好的答案。你应该解释如何为什么这可以解决他们的问题。我推荐阅读,“How do I write a good answer?"。这可以帮助未来的用户学习并最终将这些知识应用到他们自己的代码中。当代码被解释时,你也可能会得到用户的积极反馈/赞成。
【解决方案2】:

我使用控制台并记录了移动元素。我看到它在每次点击时移动 -20%。我的问题是我针对 if 语句的错误元素。 mikesp 给了我一个很好的提示,见上文。现在,当它到达末尾时,它会滑到开头。最后一张图片是-80%。那是第一个图像。也不需要 for 循环。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签