javascript - 如何使用JS制作幻灯片

标签 javascript html css

<分区>

我正在尝试完成我的第一个网站,我的截止日期很短,我知道 html css 和一些 JQuery,但是正确的 JS 对我来说仍然很难

我想在我的网站上放一个幻灯片,这就是为什么我去了 w3school 并试图在我的 visual studio 代码中复制这个例子。

$(document).ready(() => {
  var slideIndex = 1;
  showSlides(slideIndex);

  function plusSlides(n) {
    showSlides(slideIndex += n);
  }

  function showSlides(n) {
    var i;
    var slides = document.getElementsByClassName("myslides");
    if (n > slides.length) {
      slideIndex = 1
    }
    if (n < 1) {
      slideIndex = slides.length
    }
    for (i = 0; i < slides.length; i++) {
      slides[i].style.display = "none";
    }

    slides[slideIndex - 1].style.display = "block";

    }

  });
.slideshow-container {
  max-width: 100%;
  position: relative;
  margin: auto;
}

.myslides {
  display: none;
}

.prev,
.next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  margin-top: -22px;
  padding: 16px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
}

.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

.prev:hover,
.next:hover {
  background-color: rgba(0, 0, 0, 0.8);
}

.fade {
  -webkit-animation-duration: 1.5s;
  animation-duration: 1.5s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="slideshow-container">
  <div class="myslides fade">
    <img src="./IMAGENS/CASA A (1).jpg" width="100%">
  </div>
  <div class="myslides fade">
    <img src="./IMAGENS/CASA B (3).jpg" width="100%">
  </div>
  <div class="myslides fade">
    <img src="./IMAGENS/MUDA_L11_02_FINAL.jpg" width="100%">
  </div>
  <div class="myslides fade">
    <img src="./IMAGENS/MUDA_L11_05_FINAL.jpg" width="100%">
  </div>
  <a class="prev" onclick="plusSlides(-1)">&#10094;</a>
  <a class="next" onclick="plusSlides(1)">&#10095;</a>
</div>

当我尝试刷新页面时,一切看起来都很好,但是当我单击按钮更改幻灯片时,没有任何反应。你觉得我该怎么做?

我尝试用数组制作幻灯片,但没有成功。所以我认为我的 VSCODE 没有假设这两个元素是一个问题。

<a class="prev" onclick="plusSlides(-1)">&#10094;</a> 
<a class="next" onclick="plusSlides(1)">&#10095;</a> 

在我的程序中,当我执行 onclick="plusSlides(-1)"时,第一个引号显示为黄色,但第二个引号显示为白色,似乎未分配 onclick

最佳答案

正如@edinhajdarevic 所说,使用数组是一种更好的方法,因为它有很多优点,其中一些如下:

  1. 使用数组在 DOM 中呈现您的幻灯片使您的结构动态化。动态意味着,每次你想添加一张新幻灯片时,你可以将一个新的 slide 对象附加到你的幻灯片数组,而不是手动编写每张幻灯片的 HTML 和 JavaScript。

  2. 定义完所有幻灯片代码后,您将能够轻松维护代码,而不是阅读多行代码,您只需要关心 JavaScript 代码即可。

  3. 不易出错,每次复制/粘贴 HTML 或 JavaScript 以构建另一张幻灯片时,您都必须根据新幻灯片更改值,有时这会变成一项困惑的工作,从而在未来导致错误。

可以在以下 W3School 链接中找到一个不错的教程:

Slideshow Tutorial

关于javascript - 如何使用JS制作幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57665657/

相关文章:

HTML+CSS 工具提示 : Weird behavior in table with rowspan

css - 整页 Div 不显示

javascript - Angular 滑动切换动画在 ng-repeat 中不起作用?

javascript - 当数组只有 1 个元素时,从 JavaScript 数组中获取键

javascript - 如何在html中隐藏所需的输入弹出窗口

html - 使用 Node 的 http.get 获取 UTF-8 html 内容

java - 有没有一种有效的方法可以用 Java 将多个 HTML 字符串写入 PDF 文档?

javascript函数显示/隐藏多个div,第一个div可见

javascript - Meteor:仅在客户端修改集合

javascript - 如何在这里正确使用 isNaN?