Pull to refresh

Анимированная иконка загрузки на CSS3

Reading time1 min
Views8.3K


Идея взята у Dan Eden (demo), я лишь немного доработал способ.

Суть



В качестве круга используем обычный блок с рамкой. Рамка может иметь любой цвет и ширину (в этом и уникальность способа, что блок абсолютно независим от фона и прочих вещей). Рамку мы скругляем на 100% и делаем верхнюю её часть прозрачной. В этот самый пробел мы и вставляем треугольник (хак с нулевым размером блока и границей), используя наши любимые псевдо-элементы. Ну и под конец анимируем блок для имитации эффекта загрузки.

Разметка:

<span class="spinner"></span>​


CSS:


.spinner {
    display: block;
    width: 35px;
    height: 35px;
    margin: 80px 150px;
    position: relative;

    border: 2px solid rgba(0,0,0,0.5);
    border-top-color: transparent;
    border-radius: 100%;

    animation: spin 1s infinite linear;
 }
 
.spinner:after {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    top: -6px;
    left: 3px;
    
    border: 6px solid transparent;
    border-bottom-color: rgba(0,0,0,0.5);
    
    transform: rotate(45deg);
}

@keyframes spin {
    to { transform: rotate(360deg); }
}​


Не забывайте указывать префиксы для браузеров!

Способ работает во всех современных браузерах (IE<=9, давай до свидания!)

Демо на jsfiddle
Tags:
Hubs:
Total votes 84: ↑81 and ↓3+78
Comments99

Articles