Демо:

https://codepen.io/ildar-meyker/pen/dyrMKop

Плагины:

Подключение:

//

Разметка:

//

<a href="#" class="btn btn-primary btn-loadable">
    <span>Загрузить еще</span>
    <div class="btn-loadable__spinner"></div>
</a>

Стили:

// blocks/buttons/btn-loadable.scss

.btn-loadable {
    position: relative;

    &.loading {
        > * {
            visibility: hidden;
        }

        > .btn-loadable__spinner {
            visibility: visible;
        }
    }

    &__spinner {
        width: 1.5em;
        height: 1.5em;
        border: 2px solid currentColor;
        border-top-color: transparent;
        border-radius: 50%;
        animation: btnLoadRotate 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
        position: absolute;
        top: 50%;
        left: 50%;
        margin: -0.75em 0 0 -0.75em;
        visibility: hidden;
    }
}

@keyframes btnLoadRotate {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

Инициализация:

// modules/demo.js
// #demo
$(function () {
    $(".btn-loadable").on("click", function (e) {
        e.preventDefault();

        $(this).addClass("loading");

        setTimeout(() => {
            $(this).removeClass("loading");
        }, 1500);
    });
});
Рубрики: модуль

0 комментариев

Добавить комментарий

Avatar placeholder

Ваш адрес email не будет опубликован. Обязательные поля помечены *