«Android L», загружающий счетчик CSS

#html #css

#HTML #css

Вопрос:

Посмотрев на новый / дизайн от Google, мне стало интересно, есть ли какой-либо способ выполнить загрузочный счетчик, подобный тому, который находится в разделе / progress-activity (прокрутите вниз до «Circular») с помощью HTML / CSS?

Я говорю только о самой анимации. Насколько я знаю, может быть практически невозможно округлить границы счетчика, как это сделал Google.

Мне удалось создать только очень (very) простую версию этого счетчика, но я не мог понять, как анимировать саму «границу» (например, счетчик в новейшей версии Android). По сути, я просто использовал border / border-radius: 50%; и бесконечную анимацию CSS для поворота HTML-элемента (0 градусов -> 360 градусов):http://codepen.io/anon/pen/mqiCf

Или я должен использовать «олдскульный» .gif, чтобы получить что-то похожее на счетчик «Android L»?

Комментарии:

1. Все возможно, но это будет очень сложно. Я вижу, вы довольно близки — почему бы вам не добавить белый круг поверх синего, чтобы контролировать размер синего (хотя это будет работать только на белом фоне)? Вы знаете, белый будет работать как ластик.

Ответ №1:

Я думаю, что этого можно было бы достичь с помощью SVG, при условии, что те браузеры, на которые вы ориентируетесь, поддерживают требуемую анимацию.

Я бы использовал два компонента: частично непрозрачный эффект «растущего круга» в начале — это один элемент, а вращающийся круговой контур — это второй элемент.

Аспект, которого невозможно достичь с помощью HTML, заключается в изменении длины дуги окружности. В SVG вы можете добиться этого, используя анимированный массив штрихов. Вот пример этого.

Комментарии:

1. Спасибо, хорошая идея, возможно, лучше, чем просто использовать HTML / CSS. Я думаю, что поддержка браузером SVG даже лучше, чем мой подход к CSS-анимации. Однако я еще не работал с SVG, поэтому сначала мне нужно будет ознакомиться с ним.

2. Вы можете столкнуться с крутой кривой обучения, если вы впервые используете SVG. Однако вот основной круг, с которого вы сможете начать: <svg><circle cx="15" cy="15" r="13" fill="none" stroke="black" /></svg>

3. Я знаю, что об этом спрашивали некоторое время назад, но вот версия счетчика в формате HTML, SVG и CSS. Я постарался сделать его как можно ближе. codepen.io/nrdobie/pen/jqswe

4. @Nick отличная работа! Я не думал об этом в то время, но запуск эффекта «распутывания» для завершения работы счетчика — еще одна проблема. Для этого может потребоваться API веб-анимации.

Ответ №2:

В данный момент у меня нет времени приводить лучший пример, но этот немного ближе. Я попробовал то, что сказал Шомз в комментарии, об использовании белого загрузчика поверх синего. Это не идеально, но немного поиграйте со временем.

http://codepen.io/anon/pen/bBKJe

Комментарии:

1. Спасибо, я немного модифицировал ваше перо и работал с двумя полукругами, перекрывающими друг друга. Это похоже, но, к сожалению, наложение на самом деле не «сотрет» цвет: codepen.io/anon/pen/cwzvK

2. У вас есть время, если вы сможете сделать так, чтобы белый полукруг был немного шире синего, это позаботится о краях.