Я пытаюсь сделать анимацию, чтобы круг выглядел так, будто он наполняется водой. Я столкнулся с двумя ошибками и не смог даже преодолеть третью: Использовать заполнение (fill) это неправильное решение. Круг возвращается до пустого (черного) цвета после его заполнения На данный момент я использую теги , но я хотел бы переместить этот эффект в body {background-image:} и нужно какое-то направление, как это сделать. То, что я пробовал до сих пор: http://jsfiddle.net/um0rnL56/1/
Ответ Вот четыре разных варианта: 1. Используя Easing Если вы заполняете жидкостью круглую чашу, то она будет заполняться быстрее внизу и сверху, чем в середине (потому что в более широкой средней части больше места для покрытия) Итак, с учетом этого грубого объяснения, анимация должна: начинаться быстро, замедляться посередине, а затем быстро заканчиваться, когда чаша сужается снова наверху. Для этого мы можем использовать функцию easing CSS3: cub-bezier (.2, .6, .8, .4). Посмотрите пример ниже. (Если вы хотите настроить easing здесь, то вот отличный ресурс: http://cubic-bezier.com/#.2,.6,.8,.4)
2. SVG Deliciousness Давайте сделаем еще один шаг вперед. Допустим, мы захотим добавить волнистую поверхность на «воду» с помощью CSS. Мы можем сделать это, используя SVG. Я создал волнистый SVG image в Adobe Illustrator, а затем анимировал image, чтобы перемещать его слева направо в цикле с отдельной анимацией CSS: Пример
3. С линией наполнения Этот пример включает линию заливки (большинство чаш заполняется сверху, а не снизу). Линия заливки сначала анимируется сверху вниз, в то время как свойство animation-delay предотвращает выполнение анимации заливки до завершения заливки.