Привет, меня зовут Стивен.
На этом занятии будет рассказано, как использовать CSS для создания эффекта капли воды. Когда графика встречается, кажется, что они сливаются вместе. Я помню, что некоторые пользовательские интерфейсы Android также анимируются аналогичным образом при зарядке:
Видеоверсия этого урока находится по адресувоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооДобро пожаловать три подряд внимание!
часть HTML
Откройте редактор CodePen и добавьте новый<div>,classдаcontainer; добавить три<div>,classдаdrop, представляющий точку каплепадения.
Разделы CSS
На стороне CSS добавьте.containerСелектор,displayустановить какflex,justify-contentа такжеalign-itemsустановить какcenter,min-heightустановить как100vh, так что все в.containerЭлементы внутри контейнера центрированы, а цвет фона установлен на черный.
новыйbodyселектор, будетmarginустановить как0.
новый.dropселектор, чтобы установить ширину и высоту100px, цвет фона установлен на белый, а закругленные углы установлены на50%, Это станет кругом.
существует.containerгенерал-лейтенантflex-directionустановить какcolumn, так что три круга выровнены по вертикали.
затем в.dropВ селекторе добавьтеpositionустановить какabsolute, три круга перекрываются, и еще два.dropселекторы соответственно.drop:nth-child(2)указать второе и.drop:nth-child(3)Укажите третий.
Установите еще немного смещения, второй наборtransform: translateY(-80px), третья установкаtransform: translateY(-130px).
Принцип слияния точек воды
Тогда ключевая позиция здесь, сначала в.dropдобавить в селекторfilter: blur(20px), который добавляет параметр размытия к трем кругам:
затем в своих контейнерах,.containerвнутри, присоединяйтесьfilter: contrast(30), Улучшите контраст, чтобы оригинал мог размыть границу, за счет улучшения контраста перерисуйте реальный край, слитый вместе, чтобы добиться эффекта:
Другими словами, размытый край — это цвет от черного к серому и к белому, а эффект увеличения контраста заключается в том, что светло-серый воспринимается как белый, а темно-серый — как черный.
Как только вы поймете этот принцип, создание анимации не составит труда. Добавьте еще два элемента в HTML, которыеclassназванныйcollectionиз<div>, и<span>.
collectionКонтейнеры, используемые для имитации пунктов сбора, в то время как<span>просто добавьте к нему текст, например80%.
На стороне CSS добавьте.collectionселектор, с.dropселекторы примерно одинаковые, установите ширину и высоту на100px, цвет фона установлен на белый, а угол скругления установлен на50%,так же какfilterустановить какblur(20px).
ПрисоединяйсяspanСелектор,positionустановить какabsolute,font-familyшрифт установлен наHelvetica, затем установите размер текста на30px. ,
сделать анимацию
Теперь, чтобы начать анимацию, сначала присоединитесь@keyframes drop, чтобы оживить капли воды. Добавьте три блока, которые0%,50%а также100%.
0%Блок — это когда начинается анимация, добавляемtransformатрибут, сначала немного уменьшите его, установитеscale(.7), затем переместите его вверх, чтобы установитьtranslateY()Например-600%,Потомopacityустановить как0, чтобы капелька спряталась первой.
затем в50%В блоке добавьте такую же настройку и задайтеscaleустановить как.4,translateYустановить как-80%, с установленной прозрачностью1, появятся капли воды.
опять таки100%внутри блока,scaleустановить как.3,translateYустановить как0px.
назад.dropселектор, присоединяйтесьopacityустановить как0, убедитесь, что капля скрыта в начале. Присоединяйсяanimation, установить как2.5s, название анимацииdrop, на этот раз мы будем использовать линейную скоростьlinear, и бесконечная анимация повтораinfinite.
Теперь вы можете видеть, что есть небольшой эффект падения воды, в:nth-child(2)а также:nth-child(3)селектор, поместите оригиналtransformНастройка убрана, а потом добавлена настройка задержки воспроизведения анимации, а вторая капля воды задерживает.5s, задержка третьей капли.7s.
Теперь вы можете видеть, что эффект трех капель воды завершен:
снова дляcollectionДобавьте несколько анимационных эффектов в этот контейнер для сбора точек воды, добавьте@keyframes collection, также подготовьте три блока, которые0%,50%а также100%.
существует0%Присоединяйсяtransformсвойства, настройкиscale(1) rotate(0deg); затем в100%Добавьте те же настройки вrotateизменить на360deg, он обернется.
Ключевые изменения50%установлен в блоке,scaleустановить как1.3немного увеличить иrotateустановить как180deg, то ширина меняется на90px, чтобы анимация увеличивала масштаб и превращала круг в эллипс за один оборот.
Чтобы добавить больше случайных эффектов, в50%Внутри блока установите верхний левый угол настройки закругленного угла на40%, нижний левый угол установлен на45%.
назад.collectionселектор, присоединяйтесьanimation, анимация настроена на3s, название анимацииcollection, ускорение линейноеlinear, и та же бесконечная анимация повтораinfinite.
Давайте посмотрим на завершенный эффект этого случая
Это все для этого эпизода.
Исходный код для этого случая находится накод спрей.IO/стивен класс/боюсь...
Ваша поддержка-моя мотивация, пожалуйста, обратите вниманиеМинимальный класс CodingStartup, давайте работать вместе!
- Станция Б:space.bilibili.com/451368848
- YouTube: YouTube.com/кодирование начало…
- Самородки:Талант /user/249773…