css实现动态水波纹效果

效果如下:

  1. 外层容器 (shop_wrap):

    • 设置外边距 (padding) 提供一些间距和边距
  2. 圆形容器 (TheCircle):

    • 使用相对定位 (position: relative),宽度和高度均为 180px,形成一个圆形按钮
    • 圆角半径 (border-radius) 设置为 50%,使其呈现圆形
    • 边框 (border) 和阴影 (box-shadow) 提供边框和轻微的立体感
    • 设置溢出隐藏 (overflow: hidden),确保水波纹效果在容器内显示
    • 鼠标悬停时显示手型光标 (cursor: pointer)
  3. 水波纹容器 (Water):

    • 绝对定位 (position: absolute),覆盖在圆形容器上
    • 设置宽度和高度为 100%,形成一个完整的圆形水波纹效果
    • 设置背景颜色 (background-color) 为水波纹的颜色
    • 圆角半径 (border-radius) 同样设置为 50%
    • 溢出隐藏 (overflow: hidden),确保水波纹效果不超出容器
  4. 文字居中显示 (CenteredText):

    • 绝对定位 (position: absolute),位于水波纹容器中心
    • 使用 transform 属性将文字居中显示
  5. 水波纹效果 (Water::afterWater::before):

    • 使用 ::after::before 伪元素创建水波纹效果
    • 设置宽度和高度为 150%,略大于容器,以确保水波纹效果覆盖整个容器
    • 设置圆角半径,形成圆形效果
    • 设置动画 (animation),通过关键帧 (@keyframes) 实现水波纹的旋转和缩放效果

源码如下: 

<template>
    <div class="shop_wrap">
        <div class="TheCircle">
            <div class="Water">
                <span class="CenteredText">上传图片</span>
            </div>
        </div>
    </div>
</template>

<script setup>
</script>

<style lang="scss" scoped>
.shop_wrap {
    padding: 50px; /* 设置外层容器的内边距 */
    
    .TheCircle {
        position: relative;
        width: 180px; /* 设置圆形容器的宽度 */
        height: 180px; /* 设置圆形容器的高度 */
        border-radius: 50%; /* 圆形容器的圆角半径 */
        border: 1px solid #38b973; /* 圆形容器的边框样式 */
        box-shadow: 0 0 0 1px #38b973; /* 圆形容器的阴影样式 */
        overflow: hidden; /* 确保容器裁剪水波纹效果 */
        cursor: pointer; /* 鼠标悬停时显示手型光标 */
    }

    .Water {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: #38b973; /* 水波纹的颜色 */
        border-radius: 50%;
        overflow: hidden;
        z-index: 1; /* 确保水波纹在文字之上 */
    }

    .CenteredText {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%); /* 居中显示文字 */
        color: #333; /* 文字颜色 */
        z-index: 2; /* 确保文字在水波纹之上 */
    }

    .Water::after {
        content: '';
        position: absolute;
        top: 0;
        left: 50%;
        width: 150%;
        height: 150%;
        border-radius: 40%;
        background-color: rgb(240, 228, 228); /* 水波纹内部颜色 */
        animation: real 5s linear infinite; /* 实际水波纹的动画效果 */
    }

    @keyframes real {
        0% {
            /* 初始状态:向上平移50%、左平移65%并旋转0度 */
            transform: translate(-50%, -65%) rotate(0deg); 
        }
        100% {
            /* 终止状态:向上平移50%、左平移65%并旋转360度,形成旋转一周的效果 */
            transform: translate(-50%, -65%) rotate(360deg); 
        }
    }

    .Water::before {
        content: '';
        position: absolute;
        top: 0;
        left: 50%;
        width: 150%;
        height: 150%;
        border-radius: 42%;
        background-color: rgb(240, 228, 228, 0.2); /* 水波纹外部颜色及透明度 */
        animation: virtual 7s linear infinite; /* 虚拟水波纹的动画效果 */
    }

    @keyframes virtual {
        0% {
            /* 初始状态:向上平移50%、左平移60%,不进行缩放,旋转0度 */
            transform: translate(-50%, -60%)  scale(1)  rotate(0deg); 
        }

        100% {
            /* 终止状态:向上平移50%、左平移60%,进行1.1倍的缩放,旋转360度,
            形成旋转一周的效果并放大水波纹 */
            transform: translate(-50%, -60%) scale(1.1) rotate(360deg); 
            
        }
    }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/330660.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【性能调优】local模式下flink处理离线任务能力分析

文章目录 一. flink的内存管理1.Jobmanager的内存模型2.TaskManager的内存模型2.1. 模型说明2.2. 通讯、数据传输方面2.3. 框架、任务堆外内存2.4. 托管内存 3.任务分析 二. 单个节点的带宽瓶颈1. 带宽相关理论2. 使用speedtest-cli 测试带宽3. 任务分析3. 其他工具使用介绍 本…

生物识别规划人脸识别芯片方案的概述和特点

方案概述 人脸识别方案采用高性能AI芯片&#xff0c;支持RGB和IR摄像头&#xff0c; 支持LCD显示屏。 方案特点 • 普通RGB摄像头和IR摄像头同时参与3D成像RGB摄像头 支持屏幕回显 • 双目摄像头得到特征点视差计算人脸相 对3D深度信息&#xff0c; 同时利用可见光和红外 光谱信…

达梦数据库入门语法:从基础到进阶的指南

目录 博客前言&#xff1a; 达梦数据库语法介绍 一.创建表空间 1.图形化创建 2.语法创建 ​编辑​编辑 3.修改表空间参数 图形化修改 ​编辑​编辑 语法修改 4.设置加密算法、密码 二.创建用户 1.图形化 2.sql执行 ​编辑 3.授予权限 授予用户 DBA 权限 授予用户…

运算符和表达式

表达式 表达式是由运算符、运算量和标点符号组成的有效序列&#xff0c;其目的是用来说明一个计算过程&#xff0c;表达式可以独立成句&#xff0c;一般形式为&#xff1a; 表达式&#xff1b; 运算符 运算符可以按照功能分为&#xff1a;算术运算符、赋值运算符、关系运算…

【 文本到上下文 #4】NLP 与 ML

一、说明 欢迎回到我们的 NLP 博客系列&#xff01;当我们进入第四部分时&#xff0c;焦点转移到机器学习 &#xff08;ML&#xff09; 和自然语言处理 &#xff08;NLP&#xff09; 之间的动态相互作用上。在本章中&#xff0c;我们将深入探讨 ML 和 NLP 的迷人协同作用&#…

PLSQL 把多个字段转为json格式

PLSQL 把多个字段转为json格式 sql Select cc.bm, cc.xm, json_arrayagg(cc.hb) jgFrom (Select aa.bm, aa.xm, json_object(aa.ksbh, aa.wjmc) hbFrom (Select 001 bm, 老六 xm, 0001 ksbh, 文具盒 wjmcFrom dual tUnion AllSelect 001 bm, 老六 xm, 0002 ksbh, 毛笔 wjmcFr…

LabVIEW精确测量产品中按键力和行程

项目背景 传统的按键测试方法涉及手工操作&#xff0c;导致不一致和效率低下。在汽车行业中&#xff0c;带有实体按键的控制面板非常常见&#xff0c;确保一致的按键质量至关重要。制造商经常在这些组件的大规模、准确测试中遇到困难。显然&#xff0c;需要一个更自动化、精确…

Modbus协议学习第三篇之协议通信规则

导语 本篇博客将深入介绍Modbus协议的一些内容&#xff0c;主要包括通讯方式和通讯模型的介绍 Modbus通讯方式 Modbus协议是单主机、多从机的通信协议&#xff0c;即同一时间&#xff0c;总线上只能有一个主设备&#xff0c;但可以有一个或者多个从设备&#xff08;最多好像是2…

基于springboot+vue的校园管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

贵阳贵安推进“数字活市”战略成效明显

作者&#xff1a;黄玉叶 近年来&#xff0c;贵阳贵安将数字经济确立为高质量发展的主路径之一&#xff0c;把推进“数字活市”作为实施主战略、实现主定位&#xff0c;特别是建设“数字经济发展创新区核心区”的重要抓手&#xff0c;从改革、发展、民生三个维度纵深推进“数字活…

未来的NAS:连接您的数字生活

未来的NAS&#xff1a;连接您的数字生活 引言 网络附加存储&#xff08;Network Attached Storage&#xff0c;简称NAS&#xff09;是一种通过网络连接的存储设备&#xff0c;用于集中存储和共享数据。传统的NAS设备通常包含一个或多个硬盘驱动器&#xff0c;可以通过局域网连…

数据结构和算法的部分例题(力扣)

1.数组 1.1 合并一个数组的两个有序区间 public class MargTwo {public static void main(String[] args) {int[] arr1{1,5,6,2,4,10,11};int[] arr2new int[arr1.length];marg2(arr1,0,2,3,6,arr2);}private static void marg2(int[]arr1,int iStar,int iEnd,int jStar,int j…

【机组】通用寄存器单元实验的解密与实战

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《机组 | 模块单元实验》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 ​ 目录 &#x1f33a;一、 实验目…

广和通AI解决方案“智”赋室外机器人迈向新天地!

大模型趋势下&#xff0c;行业机器人将具备更完善的交互与自主能力&#xff0c;逐步迈向AI 2.0时代&#xff0c;成为人工智能技术全面爆发的重要基础。随着行业智能化&#xff0c;更多机器人应用将从“室内”走向“室外”&#xff0c;承担更多高风险、高智能工作。复杂的室外环…

阿里云国外服务器价格表

阿里云国外服务器优惠活动「全球云服务器精选特惠」&#xff0c;国外服务器租用价格24元一个月起&#xff0c;免备案适合搭建网站&#xff0c;部署独立站等业务场景&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云国外服务器优惠活动&#xff1a; 全球云服务器精选特惠…

Linux网络引导自动安装centos7

目录 一、部署PXE远程安装服务 1. 系统装机的三种引导方式 2. pxe概述 3. 实现过程 4. 搭建过程中服务介绍 4.1 TFTP服务 4.2 vsftp&#xff1a;安装系统镜像文件获取方式 4.3 syslinux 4.4 DHCP服务 5. 操作过程 二、实现Kickstart无人值守安装 1. 安装Kickstart图…

Codeforce s Round 920 (Div. 3) G题 旋转矩阵,斜缀和,平移

Problem - G - Codeforces 目录 题意&#xff1a; 思路&#xff1a; 总思路&#xff1a; 旋转矩阵&#xff1a; 前缀和预处理&#xff1a; 平移的处理&#xff0c;尤其是越界的处理&#xff1a; 核心代码&#xff1a; 题意&#xff1a; 给你个n*m的矩阵&#xff0c;里…

【论文解读】用于代码处理的语言模型综述

目录 1.简要介绍 2.代码处理的语言模型的评估 3.通用语言模型 4.用于代码处理的特定语言模型 5.语言模型的代码特性 6.软件开发中的LLM 7.结论与挑战 ​​​​​​​1.简要介绍 在这项工作中&#xff0c;论文系统地回顾了在代码处理方面的最新进展&#xff0c;包括50个模…

Elasticsearch各种高级文档操作2

本文来记录下Elasticsearch各种文档操作 文章目录 初始化文档数据 初始化文档数据 在进行各种文档操作之前&#xff0c;我们先进行初始化文档数据的工作

【MySQL】权限控制

DCL-权限控制 查询权限 show grants for 用户名主机名;授予权限 grant 权限列表 on 数据库名.表名 to 用户名主机名;grant all on test.* to user%; %是通配符&#xff0c;表示任意主机。撤销权限 revoke 权限列表 on 数据库名.表名 from 用户名主机名;revoke all on test.*…