• css实现水波纹


    携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情 ui设计的元素有时候需要有一些动画效果,可以直接用css动画来实现。

    实现一个中心圆向四周有水波纹的效果

    利用定位添加多个圆,给他们加上动画,使得依次从小变大,这样就形成了逐渐外扩的动画效果

    (一)中间圆

    绘制中间的圆

    1. .logo {
    2. width: 80px;
    3. height: 80px;
    4. background: #7EC4FC;
    5. color: #fff;
    6. text-align: center;
    7. line-height: 80px;
    8. border-radius: 50%;
    9. position: absolute;
    10. top: 310px;
    11. left: 0;
    12. right: 0;
    13. margin: 0 auto;
    14. z-index: 9;
    15. }
    16. 复制代码

    (二)水波纹最大的圆

    绘制水波纹最大可扩大的圆的大小

    1. .animate-wave {
    2. width: 500px;
    3. height: 500px;
    4. position: absolute;
    5. top: 100px;
    6. left: 0;
    7. right: 0;
    8. margin: 0 auto;
    9. background: #C3E4FF;
    10. border-radius: 50%;
    11. }
    12. 复制代码

    要实现4个个依次扩大的水波纹效果

    1. <div class="animate-wave">
    2. <div class="w1">div>
    3. <div class="w2">div>
    4. <div class="w3">div>
    5. <div class="w4">div>
    6. div>
    7. 复制代码

    (三)水波纹动画

    设置动画,0%的时候是宽高为0,逐渐增大,100%时候增大到最大,依次添加动画延迟,这样就有水波纹的效果了

    1. @-webkit-keyframes opac {
    2. from {
    3. opacity: 1;
    4. width: 0;
    5. height: 0;
    6. top: 50%;
    7. left: 50%;
    8. }
    9. to {
    10. opacity: 0;
    11. width: 100%;
    12. height: 100%;
    13. top: 0;
    14. left: 0;
    15. }
    16. }
    17. .animate-wave * {
    18. background: #C3E4FF;
    19. position: absolute;
    20. border-radius: 50%;
    21. animation: opac 4s infinite;
    22. }
    23. .animate-wave .w2 {
    24. animation-delay: 1s;
    25. }
    26. .animate-wave .w3 {
    27. animation-delay: 2s;
    28. }
    29. .animate-wave .w4 {
    30. animation-delay: 3s;
    31. }
    32. 复制代码

    (四)最终效果

    图片实现水波纹

    观察这个效果,是有从中间逐渐向外扩的效果 定义水波纹标签

    1. <div class="w w5">div>
    2. <div class="w w4">div>
    3. <div class="w w3">div>
    4. <div class="w w2">div>
    5. <div class="w w1">div>
    6. <div class="w w0">div>
    7. 复制代码

    (一)初始圆

    1. .w{
    2. position: absolute;
    3. top: calc((100% - 50px)/2);
    4. left: calc((100% - 50px)/2);
    5. width: 50px;
    6. height: 50px;
    7. border-radius: 500px;
    8. background: url('../img/2.jpg') fixed center center;
    9. }
    10. 复制代码

    效果

    (二)水波纹

    div盒子的class设置为“w0-5”,给它样式设置设置图像的z-index属性;再给background-size属性指定背景图像的大小;动画animation绑定到一个

    元素,只要把六个div叠在一起,搭配CSS的animation,就可以让六个div依序出现

    (三)动画效果

    通过@keyframes规则,创建动画是通过逐步改变0%是开头动画,100%是当动画完成

    1. @keyframes w{
    2. 0%{
    3. top: calc((100% - 50px)/2);
    4. left: calc((100% - 50px)/2);
    5. width: 50px;
    6. height: 50px;
    7. }
    8. 100%{
    9. top: calc((100% - 500px)/2);
    10. left: calc((100% - 500px)/2);
    11. width: 500px;
    12. height: 500px;
    13. }
    14. }

    (四)最终效果

     

     最后分享 程序员 面试题库

    1、前端面试题库 (面试必备)            推荐:★★★★★

    地址:前端面试题库

    2、前端技术导航大全      推荐:★★★★★

    地址:前端技术导航大全

    3、开发者颜色值转换工具   推荐:★★★★★

    地址 :开发者颜色值转换工具

     

  • 相关阅读:
    生成带干扰线的验证码
    valgrind,memcheck的使用
    矩阵分析与应用(23)
    让chatgpt编写一个微信小程序的对话页面,它是这么整的,我懵了
    Github 2FA绑定中国+86手机号码实现两步验证
    计算机毕业设计(附源码)python综合众筹网站
    SpringMVC统一异常处理配置
    建造者模式
    自动驾驶技术中常用英文单词及缩略语整理
    基于Spring Boot使用Java调用http请求的6种方式
  • 原文地址:https://blog.csdn.net/weixin_42981560/article/details/126490198