.studio
Samand

Кастомный прелоадер Lite из ZERO Block

Модификация для Tilda. Прелоадер для сайта из Zero блока. Показываем его пока не загрузится страница. Это Lite версия предлоадера, в скором времени опубликуем версию Pro с большим количеством настроек.

Кейс использования
Модификация подойдет, если у вас несколько тарифных планов и вы не хотите делать миллиард popup форм. Вы можете сделать одну форму и пользователю не придется переключать значения выпадающего списка по нескольку раз.

Пример работающей модификации

Работу модификации вы видели, когда загружалась страница.
Чтобы увидеть ее еще раз, можно перезагрузить страницу или нажать на кнопку ниже.

Инструкция по внедрению модификации

1
Создаем Zero Block с анимацией
Блок надо растянуть 100% высоты. Анимацию можно делать любую, как gif/svg, так и step-by-stap.
Для корректной работы, лучше всего все это делать в header или footer блоках, которые есть у вас на каждой странице.
2
Блоку с прелоадером задаем кастомный css класс
В примере у блока класс "uc-preloader". Мы можете назвать также или вообще скопировать изначальный id этого блока и вставить в код #rec[соответствующий id], но лучше не выебывайтесь.
3
Копируем код и вставляем его в блок T123
4
В коде вставляем класс блока с прелоадером и настраиваем время
В форме делаем выпадающий список, задаем варианты в соответствии с названиями тарифов (можно добавить и прочие) и даем ему имя переменной.
5
В коде можно выбрать будет ли появляться блок один раз за сессию или каждый раз при открытии страницы
<!-- Samand.studio | Кастомный прелоадер Lite из ZERO Block -->
<script type="text/javascript">


//Названия классов
let preLoaderClass = 'uc-preloader'; //класс блока c preloader
let preLoaderTimer = 3000; //время работы прелоадера
let preLoaderTimerClose = 1000; //время скрытия прелоадера
let oneImpression = true; //Выбрать true / false. Показывать прелоадер только при первом посещении после закрытии предыдущей вкладки (true) или каждый раз при загрузке страницы (false)


funcPreLoader(preLoaderClass, preLoaderTimer, preLoaderTimerClose, oneImpression);

function funcPreLoader (preLoaderClass, preLoaderTimer, preLoaderTimerClose, oneImpression) {
    window.onbeforeunload = () => {localStorage.removeItem('lastVisit')};
    let preloader = document.querySelector('.'+ preLoaderClass);
    if (document.querySelector('.'+ preLoaderClass)) {
        if (oneImpression) {
            if (localStorage.getItem('lastVisit') == null) { funcPreLoaderInnit(preloader) }
            else { preloader.style.display = 'none' }
        } else { funcPreLoaderInnit(preloader) }
    } else { return }
}


function funcPreLoaderInnit (preloader) {
    preloader.classList.add('preloader_active')
    document.body.style.overflow = 'hidden'
    document.addEventListener('DOMContentLoaded', () => {
        setTimeout (function () {
            fadeOut(preloader, preLoaderTimerClose, 'preloader_active')
            document.body.style.overflow = ''
            window.dispatchEvent(new Event('resize'))
        }, preLoaderTimer)
    })
    localStorage.setItem('lastVisit', 'yes')
}

let fadeOut = (el, timeout, classremove) => {
    el.style.opacity = 1
    el.style.transition = `opacity ${timeout}ms`
    el.style.opacity = 0
    setTimeout(() => { el.style.display = 'none'; el.classList.remove(classremove); }, timeout)
}
</script>

<style>
    .preloader_active {
        display: block;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 10000000011;
    }
</style>
Как вам модификация?

Заказать внедрение модификации