【发布时间】:2020-05-25 01:58:00
【问题描述】:
我有一个图片库,其中包含一个大图片下的一些图片,大图片是下面的图片之一。但是,当我添加一个新的图片库时,它会覆盖旧的图片库,当我点击这些图片时,它会更改我不想要的第一个图库图片。我认为我的 javascript 代码中有一些错误,它针对我所有的画廊,我可以让它只针对点击的图像吗? 这是一个小提琴:https://jsfiddle.net/u8pbtLra/
这是代码
var slideIndex = 1;
showSlides(slideIndex);
// Next/previous controls
function plusSlides(n) {
showSlides(slideIndex += n);
}
// Thumbnail image controls
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("mySlides");
var xSlides = slides.length;
alert(xSlides);
var slideIndexes = [0,1,0];
alert(slideIndexes);
var dots = document.getElementsByClassName("demo");
if (n > slides.length) {slideIndex = 1}
if (n < 1) {slideIndex = slides.length}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
}
html:
<div class="container2">
<div class="mySlides">
<div class = "bb" style="background-image:url(https://lh3.googleusercontent.com/-NREkKmTtXX0/AAAAAAAAAAI/AAAAAAAAADg/w2IRnCo5AwQ/photo.jpg?sz=328);"></div>
<!-- The above div is the problem -->
</div>
<div class="mySlides">
<img src="https://i.stack.imgur.com/FyV3d.gif" style="width:100%">
</div>
<div class="row">
<div class="column">
<img class="demo cursor" src="https://lh3.googleusercontent.com/-NREkKmTtXX0/AAAAAAAAAAI/AAAAAAAAADg/w2IRnCo5AwQ/photo.jpg?sz=328" onclick="currentSlide(1)" width="100%" alt="text">
</div>
<div class="column">
<img class="demo cursor" src="https://i.stack.imgur.com/FyV3d.gif" width="100%" onclick="currentSlide(2)" alt="text">
</div>
</div>
</div>
【问题讨论】:
-
真的很难理解你想做什么。您的小提琴中有 3 张图片:下面 1 大 2 小。当你点击小猫时,大男人被猫代替了。你到底想要什么?
-
您的第二张幻灯片也称为
mySlides,因此您的代码并不真正知道哪些幻灯片属于哪个幻灯片。最简单的解决方案是将第二张幻灯片重命名为mySlidesTwo,并重写代码,以便它知道目标是哪张幻灯片。 -
是的,但我做不到
-
你有我的问题@Kokodoko
-
我需要能够添加多个画廊而不改变他们的班级
标签: javascript html