Замена стандартного битриксового прелоадера

При выполнении каких-либо аякс-запросов, стоит показывать пользователю, что система что-то делает, а не просто зависла. Для этих целей пользователю нужно показать прелоадер. в арсенале 1С-Битрикс есть соответствующие функции под данную задачу, вот только прелоадер, который данные функции показывают - слишком примитивный :( Поэтому достаточно распространенная задача менять данный прелоадер на что-то своё, более красивое.

Для того чтобы заменить стандартный прелоадер на что-то свое, достаточно всего лишь переопределить функции "BX.showWait" и "BX.closeWait"

Рассмотрим в качестве примера простейший прелоадер.

BX.showWait = function () {
    var loader = '<div class="loader"><div class="cssload-clock"></div></div>';
    $('body').append(loader);
};

BX.closeWait = function () {
    $('body').find('.loader').remove();
};

Таким образом, при показе прелоадера, в body будет добавляться текст прелоадера с контейнером, а при скрытии данный элемент будет просто удаляться. В примере функции реализованы с помощью JQUERY для большей наглядности, но тоже самое можно реализовать и через BX.js

Дальше нужно добавить стилей самого прелоадера:

.loader {
    position: fixed;
    width: 100%;
    min-width: 100%;
    height: 100%;
    min-height: 100%;
    top: 0;
    left: 0;
    z-index: 10000 !important;
    background-color: rgba(255, 255, 255, 0.75);
}

.cssload-clock {
    border-radius: 58px;
    border: 3px solid #122072;
    height: 78px;
    width: 78px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -39px;
    margin-left: -39px;
}

.cssload-clock:after {
    content: "";
    position: absolute;
    background-color: #122072;
    top: 2px;
    left: 48%;
    height: 37px;
    width: 4px;
    border-radius: 5px;
    transform-origin: 50% 97%;
    -o-transform-origin: 50% 97%;
    -ms-transform-origin: 50% 97%;
    -webkit-transform-origin: 50% 97%;
    -moz-transform-origin: 50% 97%;
    animation: grdAiguille 0.8s linear infinite;
    -o-animation: grdAiguille 0.8s linear infinite;
    -ms-animation: grdAiguille 0.8s linear infinite;
    -webkit-animation: grdAiguille 0.8s linear infinite;
    -moz-animation: grdAiguille 0.8s linear infinite;
}

.cssload-clock:before {
    content: "";
    position: absolute;
    background-color: #122072;
    top: 6px;
    left: 48%;
    height: 34px;
    width: 4px;
    border-radius: 5px;
    transform-origin: 50% 94%;
    -o-transform-origin: 50% 94%;
    -ms-transform-origin: 50% 94%;
    -webkit-transform-origin: 50% 94%;
    -moz-transform-origin: 50% 94%;
    animation: ptAiguille 4.8s linear infinite;
    -o-animation: ptAiguille 4.8s linear infinite;
    -ms-animation: ptAiguille 4.8s linear infinite;
    -webkit-animation: ptAiguille 4.8s linear infinite;
    -moz-animation: ptAiguille 4.8s linear infinite;
}

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

@-o-keyframes grdAiguille {
    0% {
        -o-transform: rotate(0deg);
    }
    100% {
        -o-transform: rotate(360deg);
    }
}

@-ms-keyframes grdAiguille {
    0% {
        -ms-transform: rotate(0deg);
    }
    100% {
        -ms-transform: rotate(360deg);
    }
}

@-webkit-keyframes grdAiguille {
    0% {
        -webkit-transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
    }
}

@-moz-keyframes grdAiguille {
    0% {
        -moz-transform: rotate(0deg);
    }
    100% {
        -moz-transform: rotate(360deg);
    }
}

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

@-o-keyframes ptAiguille {
    0% {
        -o-transform: rotate(0deg);
    }
    100% {
        -o-transform: rotate(360deg);
    }
}

@-ms-keyframes ptAiguille {
    0% {
        -ms-transform: rotate(0deg);
    }
    100% {
        -ms-transform: rotate(360deg);
    }
}

@-webkit-keyframes ptAiguille {
    0% {
        -webkit-transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
    }
}

@-moz-keyframes ptAiguille {
    0% {
        -moz-transform: rotate(0deg);
    }
    100% {
        -moz-transform: rotate(360deg);
    }
}

Таким образом получим крутящиеся по центру экрана синие (цвета можете поставить свои) часы... Вот такой получился прелоадер на чистом css :)

Количество показов: 4976
26.12.2019

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.