私は1つのページに複数のスライドショーを追加することに本当に苦労しています。 1つは本当にうまく動作しますが、2番目のものを追加するとただちにクラッシュします。1つのページに複数のスライドショー
私はこの問題がJavascriptにあると思いますが、私は本当にclouを持っていません。私はそれについて何ができるのですか?すでにたくさん試しました...
誰かがいくつかのアイデアを持っているなら、私は本当にそれを感謝します。 すでにサポートいただきありがとうございます。
これは、HTMLがどのように見えるかです:
<!-- slideshow 1 -->
<div class="slidercontainer">
<div class="showSlide fade">
<img src="images/img1.jpg" />
</div>
<div class="showSlide fade">
<img src="images/img2.jpg"/>
</div>
<div class="showSlide fade">
<img src="images/img3.jpg"/>
</div>
<!-- Navigation arrows -->
<a class="left" onclick="nextSlide(-1)">LEFT</a>
<a class="right" onclick="nextSlide(1)">RIGHT</a>
</div>
<p> text between slideshow </p>
<!-- slideshow 2 -->
<div class="slidercontainer">
<div class="showSlide fade">
<img src="images/img1.jpg" />
</div>
<div class="showSlide fade">
<img src="images/img2.jpg"/>
</div>
<div class="showSlide fade">
<img src="images/img3.jpg"/>
</div>
<!-- Navigation arrows -->
<a class="left" onclick="nextSlide(-1)">LEFT</a>
<a class="right" onclick="nextSlide(1)">RIGHT</a>
</div>
CSS:
body {
margin: 0;
background: #e6e6e6;
}
.showSlide {
display: none
}
.showSlide img {
width: 100%;
}
.slidercontainer {
max-width: 65vw;
position: relative;
background: red;
}
.left, .right {
cursor: pointer;
position: absolute;
top: 0;
height: 100%;
width: 50%;
color: white;
font-weight: bold;
font-size: 18px;
transition: 0.6s ease;
border-radius: 0 3px 3px 0;
}
.right {
right: 0;
border-radius: 3px 0 0 3px;
}
.left:hover, .right:hover {
background-color: rgba(115, 115, 115, 0.8);
}
.active {
background-color: #717171;
}
/* Fading animation */
.fade {
-webkit-animation-name: fade;
-webkit-animation-duration: 1.5s;
animation-name: fade;
animation-duration: 1.5s;
}
@-webkit-keyframes fade {
from {
opacity: .4
}
to {
opacity: 1
}
}
@keyframes fade {
from {
opacity: .4
}
to {
opacity: 1
}
}
Javascriptを:
var slide_index = 1;
displaySlides(slide_index);
function nextSlide(n) {
displaySlides(slide_index += n);
}
function currentSlide(n) {
displaySlides(slide_index = n);
}
function displaySlides(n) {
var i;
var slides = document.getElementsByClassName("showSlide");
if (n > slides.length) { slide_index = 1 }
if (n < 1) { slide_index = slides.length }
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slides[slide_index - 1].style.display = "block";
}
JavaScriptは一度に1つのギャラリーしか扱わないようです。あなたは何ですか?ギャラリーをより柔軟にして、ページ内で複数のインスタンスをサポートできるようにする方法の提案? – Narxx
@Narxxはい、私は1つのページにお互いの下で働いているスライドショーを掛けたいと思っています... – adrianschnegg