【发布时间】:2019-06-16 14:52:51
【问题描述】:
我需要多个幻灯片,但它们都位于同一页面的不同选项卡中。
老实说,我不是专家,但我正在尝试了解如何在每个按钮都运行按钮的情况下重复幻灯片放映。
如果我将这个完整的脚本添加到页面顶部的所有“.mySlides”CSS 类的 HTML 中,它会在一页中显示所有幻灯片,并且它们都可以正常工作,但我需要将它们分开.
<script>
var slideIndex = [1,1,1,1,1,1,1,1];
var slideId = ["mySlides1", "mySlides2", "mySlides3", "mySlides4",
"mySlides5", "mySlides6", "mySlides7", "mySlides8"]
showSlides(1, 0);
showSlides(1, 1);
showSlides(1, 2);
showSlides(1, 3);
showSlides(1, 4);
showSlides(1, 5);
showSlides(1, 6);
showSlides(1, 7);
function plusSlides(n, no) {
showSlides(slideIndex[no] += n, no);
}
function showSlides(n, no) {
var i;
var x = document.getElementsByClassName(slideId[no]);
if (n > x.length) {slideIndex[no] = 1}
if (n < 1) {slideIndex[no] = x.length}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
x[slideIndex[no]-1].style.display = "block";
}
</script>
所以我复制了幻灯片的 HTML 并相应地更改了 ID。
在每个窗口中,我将“.mySlides”类添加到页面顶部的 CSS 中,并且我只添加了我在该窗口中使用的那个。
.mySlides3 {display: none}
而不是全部离开:
.mySlides1, .mySlides2, .mySlides3, .mySlides4, .mySlides5, .mySlides6,
.mySlides7, .mySlides8 {display: none}
在每个幻灯片中,我还会根据我正在使用的幻灯片更改“prev”“next”类的值。
<a class="prev" onclick="plusSlides(-1, 2)">❮</a>
<a class="next" onclick="plusSlides(1, 2)">❯</a>
</div>
这是一个单独的幻灯片的脚本,但是当我在另一个窗口中重复它时,它会显示带有不同图像的不同幻灯片,但所有这些的箭头都不起作用。
我一直在删除 slideIndex、slideId 和 showSlides 值,只留下我正在使用的幻灯片之前的值,对于“mySlides3”,我将其保留为:
<script>
var slideIndex = [1,1,1];
var slideId = ["mySlides3"]
showSlides(1, 0);
showSlides(1, 1);
showSlides(1, 2);
function plusSlides(n, no) {
showSlides(slideIndex[no] += n, no);
}
function showSlides(n, no) {
var i;
var x = document.getElementsByClassName(slideId[no]);
if (n > x.length) {slideIndex[no] = 1}
if (n < 1) {slideIndex[no] = x.length}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
x[slideIndex[no]-1].style.display = "block";
}
</script>
【问题讨论】: