@Nikita_Migushev

Функция для карусели?

Есть три слайдшоу - каждый со своей продуктовой линейкой.

Нужно сделать две универсальные функции для карусели: moveLeft и moveRight.

Для карусели используется три каунтера, каждый для своей продуктовой линии.

Как прописать единую функцию, которая принимала бы у себя в аргументе, какой каунтер нужно обновить?

Вот что получается на данный момент, но это не годится:

var productLine1Counter = 0
    var productLine2Counter = 0
    var productLine3Counter = 0

function slidesMoveRigth(counter, slider) {
        counter++
        slider.style.transition = 'margin-left 0.4s ease-in-out';
        slider.style.marginLeft = '-' + 33.1 * counter + '%';
        console.log(counter);
    }

    productLine1NextBtn.addEventListener("click", function() {
        slidesMoveRigth(productLine1Counter, productLine1CarouselSlider)
    })
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ddubrava
Frontend developer, Angular
Реализация через класс Counter
https://jsfiddle.net/msxkwt2o/

Пример довольно примитивный, но показывает, как избежать дублирования на вашем примере.

С вашим же подходом, если у вас будет 50 слайдеров, то вам придется создавать как минимум 50 переменных для каждого счетчика. Это лишний код, лишние баги и неудобства. Поэтому в таких случаях используют конструкторы/классы (сахар для конструктора + прототип).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы