У вас есть некоторые синтаксические ошибки. Вы забыли пару точек с запятой, так что исправьте это, и остальная часть кода выглядит нормально.
Я также исправил часть кода Javascript.
Надеюсь, это поможет!
В основном проблема заключалась в том, что вы никогда не увеличивали или не уменьшали slideIndex
. Вы бы только увеличили, если бы оно было меньше 0 или больше .length
. Поэтому я вместо вызова n в качестве аргумента просто использовал slideIndex
в функции showDivs()
.
var slideIndex = 1;
showDivs(slideIndex);
function plusDivs(n) {
slideIndex += n;
showDivs();
}
function showDivs() {
var i;
var x = document.getElementsByClassName("mySlides");
if (slideIndex > x.length) {
slideIndex = 1;
}
if (slideIndex < 1) {
slideIndex = x.length;
}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
x[slideIndex - 1].style.display = "block";
console.log(slideIndex - 1);
}
<!DOCTYPE html>
<html>
<title>W3.CSS</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.mySlides {
display: none;
}
</style>
<body>
<h2 class="w3-center">Manual Slideshow</h2>
<div class="w3-content w3-display-container">
<img class="mySlides" style="width:100%; height: 100%; background-color: blue;">
<img class="mySlides" style="width:100%; height: 100%; background-color: red;">
<img class="mySlides" style="width:100%; height: 100%; background-color: green;">
<img class="mySlides" style="width:100%; height: 100%; background-color: purple;">
<button class="w3-button w3-black w3-display-left" onclick="plusDivs(-1)">❮</button>
<button class="w3-button w3-black w3-display-right" onclick="plusDivs(1)">❯</button>
</div>
</body>
</html>