Не работает слайдер в js/jquery

129
29 января 2020, 10:40

У меня есть две функции, которые показывают / скрывают элементы за счет манипуляции классами и css переходами:

$.fn.animatedClose = function() {
    this.addClass('closing');
    this.each(function(index, element) {
        element.closingTimeout = setTimeout(function() {
            $(element).removeClass('opened closing');
        }, getCssNumber($(element), 'transition-duration'));
    });
    return this;
}
$.fn.animatedOpen = function() {
    this.each(function(index, element) {
        clearTimeout(element.closingTimeout);
        $(element).removeClass('closing').addClass('opened');
    });
    return this;
}

Также имеется функция, которая производит аналогичные манипуляции одновременно с "элементом с контентом" и "элементом навигации", используя предыдущие две функции (просто потому что в моем коде много случаев, когда используются именно два таких элемента):

function controlToggle(element, toggle, manOpen) {
    if (!manOpen) {
        toggle.removeClass('active');
        element.animatedClose();
    }
    else {
        toggle.addClass('active');
        element.animatedOpen();
    }
}

И, наконец, функция сделанная специально для слайдеров. Она скрывает все слайды ("элементы с контентом") и делает неактивными все элементы навигации, кроме тех, что указанны в аргументах. А их, соответственно, показывает и делает активными:

function slide(slides, navAll, navClicked) {
    var slideActive = slides.eq(navClicked.index());
    controlToggle(slides.not(slideActive), navAll.not(navClicked), false);
    controlToggle(slideActive, navClicked, true);
}

В общем я создал слайдер, который имеет три элемента навигации и три соответствующих им слайда. Собственно, сама проблема: когда я нажимаю на все три элемента навигации так, что последний нажимается до того, как скрылся первый слайд, последний слайд начинает скрываться где-то за 0.1 секунды до скрытия первого (весь переход длится секунду). И это происходит с любым количеством слайдов.

READ ALSO
Как реализовать прозрачность вокруг указателя?

Как реализовать прозрачность вокруг указателя?

Коллеги подскажите на JS(или на чистом css возможно) при помощи чего можно реализовать подобное решение https://wwwkikk

147
Проблема вывода в webpack

Проблема вывода в webpack

Сделал всё как в этой статье https://hackernooncom/how-to-build-a-react-project-from-scratch-using-webpack-4-and-babel-56d4a26afd32, но всегда по ходу выполнения всплывала вот эта ошибка:

153
Как сделать, чтобы webstorm смотрел на babel config?

Как сделать, чтобы webstorm смотрел на babel config?

Как сделать, чтобы webstorm смотрел на babel config? Нужно из babel вытянуть alias, чтобы при импорте файлов можно было через Ctrl переходить в файлБез использования...

147
Скачивание БД кликом по кнопке

Скачивание БД кликом по кнопке

Можно ли как-то сделать кнопку, нажатие которой приведет к экспорту определенной БД из phpmyadmin? Те у пользователя в личном кабинете будет обычная...

129