Флешинг для загрузки Android Holo в CSS
Мне нужно знать, как я могу сделать загрузчик Android Holo в CSS без изображений. Я пробовал, но я не знаю, как я могу это сделать. Это то, что мне нужно (анимированный, как в Android):
![Holo spinner]()
Как я могу сделать это в CSS без изображений?
Ответы
Ответ 1
Я тоже не могу сделать это без изображений.
Мне удалось сделать истинную репликацию голограммы Holo как определено в AOSP, всего двумя изображениями для outer и inner. Здесь скрипка.
Проблема состоит в том, что эти два изображения имеют "полярный" градиент: они начинаются с одного цвета при 0 °, который постепенно смещается во второй цвет при движении по кругу. Там резкое изменение цвета на 0 °, где встречаются два цвета. Я не знаю, есть ли способ создать такой градиент в CSS, используя только linear-gradient
или radial-gradient
s.
ОБНОВЛЕНИЕ Я работал без изображений, yay! Проверьте скрипт.
I аппроксимировал каждый полярный градиент, используя две половины линейного градиента. Некоторые недостатки этого подхода:
- Затухание цвета не является совершенным. Цвета исчезают вдоль вертикальной оси, а не вдоль угла.
- Там есть небольшой сбой, где две половины встречаются внизу, так как они дают несколько разные цвета точкам на одной и той же горизонтальной линии. Это становится более заметным по мере увеличения ширины штриха счетчика.
Для маленьких прядильщиков - который является обычным прецедентом - он отлично работает и выглядит великолепно!
Ответ 2
Demo
http://jsfiddle.net/7cGc3/4/
Я могу получить прядильный эффект с чистым CSS. Возможны более сложные эффекты (см. Ниже), но ограничивающим фактором является то, что этот метод основан на прямоугольной области отсечения.
![enter image description here]()
Вы должны увидеть это (анимированное, конечно) в Chrome, IE10, FF. IE9 выглядит правильно, но не будет анимировать. Safari нуждается в слегка измененной версии.
Песочница для более сложных эффектов (только для webkit, больше похоже на принятый ответ): http://jsfiddle.net/7cGc3/5/
код
Префикс поставщика опущен для краткости.
HTML
HTML чрезвычайно прост.
<div class="spinner"></div>
CSS
Важными здесь являются граничный радиус, обрезка и анимация.
.spinner{
width: 100px;
height: 100px;
border-radius: 54px;
border: 4px solid #999;
position: relative;
}
.spinner:after {
content: "";
position: absolute;
top: -4px;
left: -4px;
border: 4px solid #fff;
border-radius: 54px;
height: 100px;
width: 100px;
clip: rect(0px, 60px, 50px, 0px);
animation: rotate 2s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@keyframes rotate {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}