Почему не работает slider?

Рейтинг: 0Ответов: 1Опубликовано: 13.02.2023

Не могу понять почему не работает slider(не листает слайды при нажатие кнопки Prev), подскажите в чем может быть проблема.

const btnLeft = document.getElementById('btnLeft');
const btnRight = document.getElementById('btnRight');
const img = document.querySelectorAll('.photo');
let counter = 0;

btnRight.addEventListener('click', function () {
    //Делаю видимой левую кнопку//
    btnLeft.style.display = 'block';
    //Скрываем текущий слайдер//
    img[counter].style.display = 'none';
    //Показываем следующий слайд//
    img[++counter].style.display = 'block';
    //Скрываем кнопочку если данный слайд последний//
    if (counter === img.length - 1) {
        btnRight.style.display = 'none';
    }
});

btnLeft.addEventListener('click', function () {
    btnRight.style.display = 'block';
    img[counter].display = 'none';
    img[--counter].display = 'block';
    if (counter === 0) {
        btnLeft.style.display = 'none'
    }
})
.wrapper {
    max-width: 1920px;
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
    padding-top: 150px;
}
.wrap-slider {
    position: relative;
}
.slider {
    max-width: 500px;
    width: 100%;
    margin: 0 auto;
    max-height: 500px;
    overflow: hidden;
}
.photo {
    max-width: 100%;
    min-height: auto;
}
.button {
    max-width: 100px;
    width: 100%;
    padding: 7px 0;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 10px;
    color: white;
    position: absolute;
    bottom: 50%;
    transform: translateY(-50%);
    cursor: pointer;
}
.button-left {
    display: none;
    left: 0;
    border: 2px solid green;
    background-color: greenyellow;
}
.button-right {
    right: 20%;
    border: 2px solid indigo;
    background-color: darkviolet;
}
<div class="wrapper">
    <div class="wrap-slider">
        <div class="slider">
            <div class="slider-content">
                <img class="photo" src="images/1.jpg" width="500" height="500" alt="photo">
                <img class="photo" src="images/2.jpg" width="500" height="500" alt="photo">
                <img class="photo" src="images/3.jpg" width="500" height="500" alt="photo">
                <img class="photo" src="images/4.jpg" width="500" height="500" alt="photo">
                <img class="photo" src="images/5.jpg" width="500" height="500" alt="photo">
                <img class="photo" src="images/6.jpg" width="500" height="500" alt="photo">
                <img class="photo" src="images/7.jpg" width="500" height="500" alt="photo">
                <img class="photo" src="images/8.jpg" width="500" height="500" alt="photo">
                <img class="photo" src="images/9.jpg" width="500" height="500" alt="photo">
            </div>
        </div>
        <div class="slider-nav">
            <button id="btnLeft" class="button button-left" type="button">Prev</button>
            <button id="btnRight" class="button button-right" type="button">Next</button>
        </div>
    </div>
</div>

Ответы

▲ 1Принят

В функции btnLeft.addEventListener используется неверное свойство display для скрытия/показа слайдов. Должно быть использовано свойство style.display.

btnLeft.addEventListener('click', function () {
    btnRight.style.display = 'block';
    img[counter].style.display = 'none';
    img[--counter].style.display = 'block';
    if (counter === 0) {
        btnLeft.style.display = 'none'
    }
});

так же проверь правильный ли путь к картинкам