#javascript #html #css
#javascript #HTML #css
Вопрос:
я протестировал слайд-шоу, и оно работает нормально, без проблем. я хочу, чтобы слайд-шоу было похоже на это множественное слайд-шоу (слайд-шоу 1 и слайд-шоу 2) с кнопками next и previous. но я хотел бы добавить функцию автоматического переключения между изображениями, спасибо.
<p>Slideshow 1:</p>
<div class="slideshow-container">
<div class="mySlides1">
<img src="img_nature_wide.jpg" style="width:100%">
</div>
<div class="mySlides1">
<img src="img_snow_wide.jpg" style="width:100%">
</div>
<div class="mySlides1">
<img src="img_mountains_wide.jpg" style="width:100%">
</div>
<a class="prev" onclick="plusSlides(-1, 0)">amp;#10094;</a>
<a class="next" onclick="plusSlides(1, 0)">amp;#10095;</a>
</div>
<p>Slideshow 2:</p>
<div class="slideshow-container">
<div class="mySlides2">
<img src="img_band_chicago.jpg" style="width:100%">
</div>
<div class="mySlides2">
<img src="img_band_la.jpg" style="width:100%">
</div>
<div class="mySlides2">
<img src="img_band_ny.jpg" style="width:100%">
</div>
<a class="prev" onclick="plusSlides(-1, 1)">amp;#10094;</a>
<a class="next" onclick="plusSlides(1, 1)">amp;#10095;</a>
</div>
<script>
var slideIndex = [1,1];
var slideId = ["mySlides1", "mySlides2"]
showSlides(1, 0);
showSlides(1, 1);
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>
Ответ №1:
setInterval с помощью click() — это решение:
var slideIndex = [1,1];
var slideId = ["mySlides1", "mySlides2"]
showSlides(1, 0);
showSlides(1, 1);
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";
}
// update
setInterval(() => {
document.querySelectorAll('.slideshow-container .next').forEach(function (item) {
item.click();
});
}, 3000);
<p>Slideshow 1:</p>
<div class="slideshow-container">
<div class="mySlides1">
<img src="https://images.unsplash.com/photo-1598821825527-52c94deba7ac?ixlib=rb-1.2.1amp;q=85amp;fm=jpgamp;crop=entropyamp;cs=srgbamp;ixid=eyJhcHBfaWQiOjE0NTg5fQ" style="width:100%">
</div>
<div class="mySlides1">
<img src="https://images.unsplash.com/photo-1598523959079-da7b0e3d7b39?ixlib=rb-1.2.1amp;q=85amp;fm=jpgamp;crop=entropyamp;cs=srgbamp;ixid=eyJhcHBfaWQiOjE0NTg5fQ" style="width:100%">
</div>
<div class="mySlides1">
<img src="https://images.unsplash.com/photo-1599736375341-51b0a848f3c7?ixlib=rb-1.2.1amp;q=85amp;fm=jpgamp;crop=entropyamp;cs=srgbamp;ixid=eyJhcHBfaWQiOjE0NTg5fQ" style="width:100%">
</div>
<a class="prev" onclick="plusSlides(-1, 0)">amp;#10094;</a>
<a class="next" onclick="plusSlides(1, 0)">amp;#10095;</a>
</div>
<p>Slideshow 2:</p>
<div class="slideshow-container">
<div class="mySlides2">
<img src="https://images.unsplash.com/photo-1599685590685-d5d801ec4a63?ixlib=rb-1.2.1amp;q=85amp;fm=jpgamp;crop=entropyamp;cs=srgbamp;ixid=eyJhcHBfaWQiOjE0NTg5fQ" style="width:100%">
</div>
<div class="mySlides2">
<img src="https://images.unsplash.com/photo-1600450575743-43793ba079d3?ixlib=rb-1.2.1amp;q=85amp;fm=jpgamp;crop=entropyamp;cs=srgbamp;ixid=eyJhcHBfaWQiOjE0NTg5fQ" style="width:100%">
</div>
<div class="mySlides2">
<img src="https://images.unsplash.com/photo-1600113719447-11944b2d2055?ixlib=rb-1.2.1amp;q=85amp;fm=jpgamp;crop=entropyamp;cs=srgbamp;ixid=eyJhcHBfaWQiOjE0NTg5fQ" style="width:100%">
</div>
<a class="prev" onclick="plusSlides(-1, 1)">amp;#10094;</a>
<a class="next" onclick="plusSlides(1, 1)">amp;#10095;</a>
</div>