이 기사에서는 CSS를 사용하여 물 잔물결의 배터리 충전 애니메이션 특수 효과를 구현하는 방법을 소개합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.
우리는 프론트 엔드를 구성하는 세 가지 주요 언어가 html
, css
및 js
라는 것을 알고 있습니다. > 그 중 가장 미스터리한 것이 css
인데, 왜 그런 말을 하시나요? 애니메이션, 트랜지션 등의 속성이 등장하니 생각하지 못하는 한 못할 일이 없다고 할 수 있겠네요~html
、css
和js
,其中最为神秘的便是css
,为什么这么说呢?自从动画、过度等属性的出现,可以说只有你想不到,就没有做不到~
上一篇文章介绍了一种手机充电动画效果,今天就延续一下,这个相比于上篇的就有点简单了,不过为了女朋友,特意就写一下吧~
特效:电池充电特效,整体特效可在最上方看到
要想完成这个特效,就必须要知道一些前置的属性,简单介绍一下吧:
animation 、transform 和 filter 这三个就不多做介绍了,基本上所有的动画都会用到这两个属性。【推荐学习:css视频教程】
box-shadow:阴影
用法:box-shadow: h-shadow v-shadow blur spread color inset;
border-radius:设置圆角
可设置四个值,与 margin
、padding
的使用方法一样
也就是每个半径的四个值的顺序是:左上角
,右上角
,右下角
,左下角
。
linear-gradient():渐变,用于创建一个表示两种或多种颜色线性渐变的图片。
用法:background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
我们设置两个 div ,一个座位底部的容器,上面弄个小盖子,主要通过border-radius
设置下周边的圆角,并且加入box-shadow
加入阴影,增强立体感
这里可以使用定位布局,通过top
来控制水的位置,top
的值越大水越低,top
的值越小水越高
我们把水位设置为80%,同时通过linear-gradient() 来设置水的一个渐变色:
那么动画就很简单了,只需要控制 top
值就会造成水的上升,像这样
这时需要注意的点是:
filter: hue-rotate();
这个属性控制.content{ //容器 border-radius: 15px 15px 5px 5px; &::after{ position: absolute; top: 80%; background: linear-gradient(to bottom, #7abcff 0%, #00BCD4 44%, #2196F3 100%); border-radius: 0px 0px 5px 5px; box-shadow: 0 14px 28px rgba(33, 150, 243, 0), 0 10px 10px rgba(9, 188, 215, 0.08); animation: change 10s linear infinite; filter: hue-rotate(90deg); } } @keyframes change { 30% { box-shadow: 0 14px 28px rgba(0, 150, 136, 0.83), 0px 4px 10px rgba(8, 117, 134, 0.4); } 50%{ filter: hue-rotate(60deg); } 80% { top: 20%; border-radius: 0 0 5px 5px; box-shadow: 0 14px 28px rgba(6, 136, 153, 0.2), 0 10px 10px rgba(12, 10, 112, 0.08); } 100% { top: 0%; filter: hue-rotate(0deg); border-radius: 15px 15px 5px 5px; box-shadow: 0 14px 28px rgba(7, 93, 104, 0), 0 10px 10px rgba(31, 3, 68, 0.4); } }
这个特效相信大家都见过,其思想就是在上面的大概位置上设置背景颜色,用相同的底色覆盖,
然后用到translate
这个属性,通过转化x
、y
마진
과 마찬가지로 패딩
도 같은 방식으로 사용됩니다🎜🎜즉, 각 반경의 4개 값 순서는 다음과 같습니다. 왼쪽 모서리, 오른쪽 상단 모서리
, 오른쪽 하단 모서리
, 왼쪽 하단 모서리
. 🎜배경 이미지: 선형 그라데이션(방향, 색상 중지1, 색상 중지2, ...);
🎜border-radius
를 통해 모서리를 둥글게 하고, box-shadow
를 추가하여 그림자를 추가해 입체감을 더해줍니다🎜🎜🎜top
을 통해 물의 위치를 제어할 수 있습니다. top
값이 클수록 물의 양이 작아집니다. top
값이 높을수록 물의 수위를 80%로 설정하고 동시에 linear-gradient()를 사용하여 물의 그라데이션 색상을 설정합니다. : 🎜🎜🎜🎜 그러면 애니메이션은 매우 간단해집니다. 이렇게🎜🎜 top 값만 제어하면 됩니다. image/461/771/880/165025096223206물 잔물결의 배터리 충전 애니메이션 효과를 구현하는 순수 CSS" title="165025096223206물 잔물결의 배터리 충전 애니메이션 효과를 구현하는 순수 CSS" alt="물 잔물결의 배터리 충전 애니메이션 효과를 구현하는 순수 CSS"/>🎜🎜현재 필요 주의 사항은 다음과 같습니다. 🎜filter:hue-rotate( );
이 속성은p{ //复盖 border-radius: 45% 47% 44% 42%; transform: translate(-50%, 0); animation: move 10s linear infinite; } @keyframes move { 100% { transform: translate(-50%, -160px) rotate(720deg); } }🎜🎜
p{ //复盖 border-radius: 45% 47% 44% 42%; transform: translate(-50%, 0); animation: move 10s linear infinite; } @keyframes move { 100% { transform: translate(-50%, -160px) rotate(720deg); } }
此时,我们发现这个效果并不太真实,进行多覆盖两个,改变旋转值和border-radius
的值来设置水面不重叠,但又有差距的效果
p{ &:nth-child(2){ border-radius: 38% 46% 43% 47%; transform: translate(-50%, 0) rotate(-135deg); } &:nth-child(3){ border-radius: 42% 46% 37% 40%; transform: translate(-50%, 0) rotate(135deg); } }
此时的效果就非常真实了
不得不说css
真的很神奇,最神秘的莫过于css
,喜欢的点个赞??支持下吧(● ̄(エ) ̄●)
(学习视频分享:web前端)
위 내용은 물 잔물결의 배터리 충전 애니메이션 효과를 구현하는 순수 CSS의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!