1

Тема: Простой CSS прелоадер для сайта

Всем привет!

Хочу поделиться простым прелоадером для сайта, который полностью сделан на CSS!
Код CSS выглядит следующим образом:

.load-container {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #000;
  z-index: 99999;
}

.no-cssanimations .load-container .loader {
  text-indent: 0;
  text-align: center;
  color: #fff;
  font-size: 17px;
  background: none;
  border: 0 none;
  width: auto;
  height: auto;
  margin: 1em auto;
  overflow: visible;
  box-shadow: none;
  -webkit-animation: none;
  animation: none;
}

.no-cssanimations .load-container .loader:before,
.no-cssanimations .load-container .loader:after {
  display: none;
}

.load8 .loader {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -4.3em;
  margin-top: -4.3em;
  font-size: 10px;
  text-indent: -9999em;
  border-top: 0.6em solid rgba(255, 255, 255, 0.2);
  border-right: 0.6em solid rgba(255, 255, 255, 0.2);
  border-bottom: 0.6em solid rgba(255, 255, 255, 0.2);
  border-left: 0.6em solid #fff;
  -webkit-animation: load8 1.1s infinite linear;
  animation: load8 1.1s infinite linear;
}

.load8 .loader, .load8 .loader:after {
  border-radius: 50%;
  width: 8em;
  height: 8em;
}

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

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

далее в шаблоне, сразу после <body> вставляем следующие строки:

<!-- PRELOADER -->
<div class="load-container load8">
  <div class="loader">Loading...</div>
</div>
<!-- END / PRELOADER -->

перед </body>, где у вас прописаны скрипты, пишем следующий код:

<script>
  $(window).load(function () {
      $(".load-container").delay(100).fadeOut(250);
  });
</script>

При загрузке сайта посетитель увидит на черном фоне анимированный лоадер, как только страница полностью загрузится - заставка скрывается.
В таком исполнении прелоадер получается универсальным:
если браузер поддерживает анимацию - посетитель увидит прелоадер,
если анимация не поддерживается - увидит надпись "Loading..."

Правда для того, чтобы определить возможности браузера нужно использовать modernizr.
Поэтому в секцию HEAD подключаем:

<script src="<?php get_theme_url(); ?>/assets/js/modernizr.js"></script>

Пример такого прелоадера можете посмотреть на моем тестовом сайте (специально сделал побольше задержку перед скрытием заставки)!

Возможно кому-то пригодится такое решение!?

Всем спасибо! Всем пока!

P.S. Вообще у меня создана библиотека из 9 прелоадеров (от 0 до 8), поэтом и load8. wink

Поблагодарить за помощь можно через Яндекс!

Поделиться

2

Re: Простой CSS прелоадер для сайта

он тоже работает на базе uikit? а без него будет?

отлично! а в каких случаях оправдано использование прелоадеров? как по-мне, они только мешают:
1) это лишний скрипт, который только добавляет к весу страницы увеличивая время загрузки. хоть в вашем случае это небольшой скрипт плюс несколько байт CSS
2) напрягает пользователя, заставляет ждать и вызывает раздражение

Поделиться

3 (2015-10-02 09:37:21 отредактировано pavlexx)

Re: Простой CSS прелоадер для сайта

Это не на базе UiKit, чистый CSS!

Если вы про modernizr, что это лишний скрипт, так мне кажется его почти все используют для поддержки старых браузеров!
Если вы верстаете только под последние версии браузеров и не проверяете поддержку той или иной функции - не используйте modernizr и уберите из CSS следующий код:

.no-cssanimations .load-container .loader {
  text-indent: 0;
  text-align: center;
  color: #fff;
  font-size: 17px;
  background: none;
  border: 0 none;
  width: auto;
  height: auto;
  margin: 1em auto;
  overflow: visible;
  box-shadow: none;
  -webkit-animation: none;
  animation: none;
}

.no-cssanimations .load-container .loader:before,
.no-cssanimations .load-container .loader:after {
  display: none;
}

А вообще прелоадер оправдан когда на странице много графики, скриптов...
Его задача показать процесс загрузки сайта и представить взору посетителя уже полностью загруженную страницу без всяких подергиваний и отрисовок элементов.

Если страница тяжелая - ваш посетитель и так будет ждать полной загрузки страницы и нервничать.
Просто вместо анимации он будет видеть как постепенно подгружается очередной элемент сайта. wink

Все это дело вкуса и привычки. Есть желание - используйте прелоадер, а если нет.....

Поблагодарить за помощь можно через Яндекс!

Поделиться

4

Re: Простой CSS прелоадер для сайта

Благодарю! очень пригодился.

А как можно сменить вид Preloader ?

Поделиться

5 (2016-01-12 00:07:07 отредактировано pavlexx)

Re: Простой CSS прелоадер для сайта

Приветствую!

Напишите свою разметку и CSS и смените прелоадер. wink

А вообще, посмотрите в интернете, есть много разных примеров.

Поблагодарить за помощь можно через Яндекс!

Поделиться