如何停止幻灯片放映?

阿明·埃尔沃

当我单击某些按钮时,我希望幻灯片停止工作,让我看到 10 秒或 15 秒的 img,然后它又可以恢复工作。我尝试了 setTimeout 函数,但我认为我没有正确使用它。我在 stackoverflow 上检查了一些解决方案,以解决一些看起来像我的问题,但没有任何帮助。这是我的代码的可执行版本:https : //codepen.io/Amoocris/pen/MZXQYb?send-to-phone=5555555#0

这是我的代码:

var slideIndex = 0;
showSlide();

function currentSlide(n) {
  showSlide(slideIndex = n);
}

function showSlide(n) {
  var i;
  slide = document.getElementsByClassName("mySlide");
  dotz = document.getElementsByClassName("btn");
  for (i = 0; i < slide.length; i++) {
    slide[i].style.display = "none";
  }
  slideIndex++;
  if (slideIndex > slide.length) {
    slideIndex = 1
  }
  for (i = 0; i < dotz.length; i++) {
    dotz[i].className = dotz[i].className.replace("active", "");
  }
  slide[slideIndex - 1].style.display = "block";
  slide[slideIndex - 1].className += "active";
  setTimeout(showSlide, 3000);
}
* {
  box-sizing: border-box;
}

.img {
  width: 100%;
  height: 666.656px;
}

.mySlide {
  max-width: 1000px;
  position: relative;
  margin: auto;
}

.btns {
  text-align: center;
}

.btn {
  cursor: pointer;
  display: inline-block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background-color: #bbb;
  margin: 0 2px;
}

.active,
.btn:hover {
  background-color: pink;
}

.fade {
  animation-name: fade;
  animation-duration: 1.5s;
}

@keyframes fade {
  0% {
    opacity: 0.4;
  }
  100% {
    opacity: 1;
  }
}
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
  <meta charset="utf-8">
  <title></title>
</head>
<link rel="stylesheet" href="style.css">

<body>


  <div class="slider-container">
    <div class="mySlide fade">
      <img src="https://images.pexels.com/photos/70497/pexels-photo-70497.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260" alt="" class="img">
    </div>
    <div class="mySlide fade">
      <img src="https://images.pexels.com/photos/1639557/pexels-photo-1639557.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260" alt="" class="img">
    </div>
    <div class="mySlide fade">
      <img src="https://images.pexels.com/photos/1639565/pexels-photo-1639565.jpeg?cs=srgb&dl=burger-close-up-delicious-1639565.jpg&fm=jpg" alt="" class="img">
    </div>
    <div class="btns">
      <span class="btn" onclick="currentSlide(1)"></span>
      <span class="btn" onclick="currentSlide(2)"></span>
      <span class="btn" onclick="currentSlide(3)"></span>
    </div>
  </div>

  <script src="script.js" charset="utf-8"></script>
</body>

</html>

克莱尔·林

您可以设置一个变量来跟踪幻灯片的自动播放。当一个按钮被点击时,自动播放会被取消,直到某个时间段之后,比如 5 秒。

让我们timer在 JS 文件中幻灯片部分的开头设置变量并定义它:var timer = null;

然后在showSlide函数中,除了setTimeout像当前那样调用函数之外,还可以将函数的返回值赋值给,timer以便在需要时可以取消它:timer = setTimeout(showSlide, 3000);

然后在您将编写的按钮单击功能中,添加以下代码以暂时取消自动播放并设置为在 5 秒后恢复:

clearTimeout(timer);
timer = setTimeout(showSlide, 5000);

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何自动幻灯片放映

来自分类Dev

如何在JavaScript中停止鼠标悬停时的字幕幻灯片放映?

来自分类Dev

如何在JavaScript中停止鼠标悬停时的字幕幻灯片放映?

来自分类Dev

如何创建桌面墙纸幻灯片放映?

来自分类Dev

如何在PowerPoint幻灯片放映中编辑文本?

来自分类Dev

如何使用Chromecast进行幻灯片放映

来自分类Dev

超链接结束后如何恢复幻灯片放映

来自分类Dev

Jupyter Notebook幻灯片放映离线

来自分类Dev

在幻灯片放映中使用StopInterval()

来自分类Dev

带引导的幻灯片放映

来自分类Dev

带按钮的自动幻灯片放映

来自分类Dev

幻灯片放映中的多个图像

来自分类Dev

使用JS数组的幻灯片放映

来自分类Dev

使用JS数组的幻灯片放映

来自分类Dev

网页中的JavaScript幻灯片放映

来自分类Dev

JavaScript幻灯片放映以随机顺序

来自分类Dev

幻灯片放映不正确

来自分类Dev

高效的js图像幻灯片放映

来自分类Dev

侏儒,锁屏幻灯片放映

来自分类Dev

android中的幻灯片放映

来自分类Dev

使用JavaScript的幻灯片放映

来自分类Dev

图像幻灯片放映和 IF 条件

来自分类Dev

如何停止图像的幻灯片播放?

来自分类Dev

CSS幻灯片放映(不同的幻灯片时间)

来自分类Dev

周期2同步幻灯片放映,幻灯片放映之间有延迟

来自分类Dev

当我使用JavaScript事件时,自动幻灯片放映不会停止

来自分类Dev

bx滑块:仅显示一张图像时如何禁用幻灯片放映

来自分类Dev

如何使用ASP.NET Repeater进行幻灯片放映

来自分类Dev

如何用自己的图像制作桌面墙纸幻灯片放映?