Оригинальный индикатор загрузки на CSS3

6989
8.6 из 10
Проголосовало: 6






Сделаем анимированный индикатор загрузки на CSS3 без использования каких-либо изображений. Будем использовать две синхронизированные анимации - одну для формирования плавного изменения цвета,а вторую - для вращения всей композиции.

Установка:

HTML - код

Можно использовать псевдо-элементы, но анимация для них будет возможно только в Mozilla Firefox. Поэтому используем ниже приведенную конструкцию:

Code
<div class="loading-wrap" style="position:fixed; left:50%; top:50%;">
  <div class="triangle1"></div>
  <div class="triangle2"></div>
  <div class="triangle3"></div>
</div><script>$(window).load(function() {$('.loading-wrap').fadeOut(0);});</script>


CSS

Следует обратить внимание на следующие моменты:
  • Для формирования приятного изменения цвета во всех трех треугольниках нужно увеличивать задержку анимации.
  • Между кадрами анимации для 20% и 100% поворота имеется интервал. Такой трюк формирует эффект остановки при проигрывании анимации.

    Code
    .loading-wrap {
      width: 60px; height: 60px;
      position: absolute;
      top: 50%; left: 50%;
      margin: -30px 0 0 -30px;
      background: #777;
      animation: rotation ease-in-out 2s infinite;
      border-radius: 30px;
    }
       
    .triangle1, .triangle2, .triangle3 {
      border-width: 0 20px 30px 20px;
      border-style: solid;
      border-color: transparent;
      border-bottom-color: #67cbf0;
      height: 0; width: 0;
      position: absolute;
      left: 10px; top: -10px;
      animation: fadecolor 2s 1s infinite;
    }
       
    .triangle2, .triangle3 {
      content: '';
      top: 20px; left: 30px;
      animation-delay: 1.1s;
    }
       
    .triangle3 {
      left: -10px;
      animation-delay: 1.2s;
    }
       
    @keyframes rotation {
      0% {transform: rotate(0deg);}
      20% {transform: rotate(360deg);}
      100% {transform: rotate(360deg);}
    }
       
    @keyframes fadecolor {
      0% {border-bottom-color: #eee;}
      100%{border-bottom-color: #67cbf0;}
    }


    p.s. Несмотря на привлекательность данного метода для формирования подобных популярных элементов, в настоящее время должно проводиться с осторожностью. CSS3 еще не достаточно хорошо поддерживается в браузерах. Но за такими методами будущее, так как они помогают сокращать количество HTTP запросов от браузера пользователя.
  • Автор публикации: Загрузка
    Загрузка
    Вовчик, это его n материал
    Источник: http://www.red-team-design.com/
    • Всего комментариев: 1

    Kelin
    0
    Kelin написал: Написано 03 Декабря 2012 в 16:14
    Комментарий №1
    Хм, кроссбраузерно? (Кроме IE, разумеется)

    • Оставить комментарий:
    Добавлять комментарии могут только зарегистрированные пользователи.
    Регистрация | Вход
    Меню сайта
    Категории
    Для помощи создания сайта uCoz 25
    Скрипты и модификации для Ucoz 2118
    Шаблоны форумов Ucoz 28
    Шаблоны сайтов Ucoz 431
    Авторство Webo4ki 309
    php скрипты для ucoz 57
    Графика для uCoz 40
    Мини-чат
    Последние комментарии
  • Marishka написал:
  • Можете добавить свои input поля, но сохраняйте их порядок в html для правильного сохранения и вывода.
  • Marishka написал:
  • Новая версия 1.3 (+6 новых станций):
    Установка:
    Демо: Перейти
  • Marishka написал:
  • Доп 8 станций:
    Код
    <div class="mSt"><p>Tropical</p><div data="2/trop_64">64</div><br><div data="2/trop_128">128</div><br><div data="2/trop_320">320</div></div>  
      <div class="mSt"><p>Нафталин FM</p><div data="2/naft_64">64</div><br><div data="2/naft_128">128</div><br><div data="2/naft_320">320</div></div>  
      <div class="mSt"><p>Rave FM</p><div data="2/rave_64">64</div><br><div data="2/rave_128">128</div><br><div data="2/rave_320">320</div></div>  
      <div class="mSt"><p>Gold</p><div data="2/gold_64">64</div><br><div data="2/gold_128">128</div><br><div data="2/gold_320">320</div></div>  
      <div class="mSt"><p>GOA/PSY</p><div data="2/goa_64">64</div><br><div data="2/goa_128">128</div><br><div data="2/goa_320">320</div></div>  
      <div class="mSt"><p>Minimal/Tech</p><div data="2/mini_64">64</div><br><div data="2/mini_128">128</div><br><div data="2/mini_320">320</div></div>  
      <div class="mSt"><p>House</p><div data="2/fut_64">64</div><br><div data="2/fut_128">128</div><br><div data="2/fut_320">320</div></div>  
      <div class="mSt"><p>Megamix</p><div data="2/mix_64">64</div><br><div data="2/mix_128">128</div><br><div data="2/mix_320">320</div></div>


    Fix работы радио:
    Находим: if(radUrl=="tm" || radUrl=="ps" || radUrl=="teo" || radUrl=="dc")
    Меняем на: if (radUrl == "tm" || radUrl == "ps" || radUrl == "teo" || radUrl == "dc" || radUrl == "gop")
  • CbIPoK2513 написал:
  • Мой вариант выдаёт аватарку картинкой, а не текстом.
  • waak написал:
  • и ещё забыл добавить что использую модуль каталог сайтов
    Последние темы
    Опрос
    469
    А
    Р
    Оцените новый дизай:)
    Статистика
    Анализ интернет сайта
    0
    онлайн
    0
    наших
    0
    чужих
    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    0
    Сегодня были
    Топ пользователей: