javascript - 如何使用 JS 制作幻灯片
问题描述
我正在努力完成我的第一个网站,我的截止日期很短,我知道 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)">❮</a>
<a class="next" onclick="plusSlides(1)">❯</a>
</div>
当我尝试刷新页面时,一切看起来都很好,但是当我单击按钮更改幻灯片时,没有任何反应。你觉得我应该怎么做?
我试图用数组制作幻灯片,但没有用。所以我认为我的 VSCODE 没有假设这两个元素是一个问题。
<a class="prev" onclick="plusSlides(-1)">❮</a>
<a class="next" onclick="plusSlides(1)">❯</a>
在我的程序中,当我执行 onclick="plusSlides(-1)" 时,第一个引号显示为黄色,但第二个引号显示为白色,似乎未分配 onclick
解决方案
正如@edinhajdarevic 所说,由于许多优点,使用数组是一种更好的方法,其中一些如下:
使用数组在 DOM 中呈现幻灯片会使您的结构动态化。动态意味着,每次您想要添加新幻灯片时,都可以将新
slide
对象附加到幻灯片数组中,而不是在每张幻灯片上手动编写 HTML 和 JavaScript。一旦你定义了所有的幻灯片代码,你就可以轻松地维护你的代码,而不是阅读多行代码,你只需要关心你的 JavaScript 代码。
不太容易出错,每次您复制/粘贴 HTML 或 JavaScript 以构建另一张幻灯片时,您都必须根据新幻灯片更改值,有时这会变成一项杂乱无章的工作,从而导致将来出现错误。
可以在以下 W3Schools 链接中找到一个不错的教程:
推荐阅读
- c# - HttpWebRequest 不起作用:接收时发生意外错误
- javascript - 在表单 jquery asp.net mvc 上处理的不仅仅是输入文件
- excel - 如何在日期时间的 Excel 列中突出显示某个时间范围?
- elixir - 长生不老的竹子用法
- python - 如何从 for 循环输出创建结构(例如列表)?
- assembly - 像a2f这样的分支目标是什么
在objdump反汇编中是什么意思? - azure - AKS - 将插件 HTTP 应用程序路由与 nginx 重写规则相结合?
- javascript - React,子组件映射问题
- excel - 遍历列并检查当前行中的值是否与前一行中的值不同
- python - Python节拍间隔跟踪