有趣的css - 水波纹按钮

news2024/11/15 17:02:45

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是一个好看有质感的水波纹按钮。

最新文章通过公众号「设计师工作日常」发布。


目录

  • 整体效果
  • 核心代码
    • html 代码
    • css 部分代码
  • 完整代码如下
    • html 页面
    • css 样式
    • 页面渲染效果

整体效果

💎知识点:
1️⃣ :before 以及 :after 伪元素
2️⃣ animation 动画
3️⃣ transform 以及 transition 属性
4️⃣ :active 选择器

🔑思路:
定义好按钮通用样式,然后利用阴影的大小进行动画参数设置,让阴影动起来,形成水波纹视觉效果。

适用大的入口场景,比如 banner 详情入口等,醒目、容易被看到。


核心代码部分,简要说明了写法思路;完整代码在最后,可直接复制到本地运行。

核心代码

html 代码

<button class="btn68">button</button>

button 标签主体。

css 部分代码

.btn68{
  width: 120px;
  height: 50px;
  background-color: #0093E9;
  color: #ffffff;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 2px;
  border: none;
  border-radius: 25px;
  cursor: pointer;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all .1s linear;
}
.btn68:before,.btn68:after{
  content: '';
  width: 120px;
  height: 50px;
  border-radius: 25px;
  position: absolute;
  animation: eff68 1.4s linear infinite;
}
.btn68:after{
  animation-delay: 0.7s;
}
@keyframes eff68{
  0%{
    box-shadow: 0 0 0 0px #0093E9;
    opacity: 0.2;
  }
  100%{
    box-shadow: 0 0 0 30px #0093E9;
    opacity: 0;
  }
}
.btn68:active{
  transform: scale(0.96);
}

1、定义 button 按钮基础样式后,加上 transition 过渡参数 transition: all .1s linear; ,在后面鼠标点击时,有短时间的过渡效果,这里过渡时间不宜设置过长,我设置的 0.1s

2、通过 :before 以及 :after 创建两个和按钮同样大小的伪元素,再给它们加上 animation 动画属性以及参数 animation: eff68 1.4s linear infinite; ,然后给其中一个伪元素的动画加上延迟播放 animation-delay: 0.7s; ,让两个伪元素形成交叉播放。

3、给动画加上关键帧,让伪元素的阴影逐渐变大,这里设置的 box-shadow 阴影值从 0 并且逐渐扩大到 30px ;然后阴影在变大的过程中逐渐消失,这里通过 opacity 透明值 0.20 来实现。

4、上面三步就实现了水波纹的视觉效果了,最后再利用 :active 选择器,当鼠标点击按钮时,把按钮进行缩小一点 transform: scale(0.96); ,增强按钮点击时的视觉效果。

完整代码如下

html 页面

<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="style.css">
    <title>水波纹按钮</title>
  </head>
  <body>
    <div class="app">
      <button class="btn68">button</button>
    </div>
  </body>
</html>

css 样式

/** style.css **/
.app{
  width: 100%;
  height: 100vh;
  background-color: #ffffff;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.btn68{
  width: 120px;
  height: 50px;
  background-color: #0093E9;
  color: #ffffff;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: 2px;
  border: none;
  border-radius: 25px;
  cursor: pointer;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all .1s linear;
}
.btn68:before,.btn68:after{
  content: '';
  width: 120px;
  height: 50px;
  border-radius: 25px;
  position: absolute;
  animation: eff68 1.4s linear infinite;
}
.btn68:after{
  animation-delay: 0.7s;
}
@keyframes eff68{
  0%{
    box-shadow: 0 0 0 0px #0093E9;
    opacity: 0.2;
  }
  100%{
    box-shadow: 0 0 0 30px #0093E9;
    opacity: 0;
  }
}
.btn68:active{
  transform: scale(0.96);
}

页面渲染效果

以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。


[1] 原文阅读

[2] 网站《有趣的css》上线了,网址:funcss.liujueyi.cn,欢迎大家访问。


我是 Just,这里是「设计师工作日常」,求点赞求关注!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++语言】继承:类特性的扩展,重要的类复用!

【C语言】继承&#xff0c;更进一步的复用 ✨精美思维导图奉上继承1. 继承的相关概念&#xff1a;2. 继承的定义&#xff1a;&#xff08;1&#xff09;定义格式&#xff1a;&#xff08;2&#xff09;访问限定符和继承方式&#xff1a;&#xff08;3&#xff09;默认继承方式&…

取代或转型?人工智能对软件测试的影响(内附工具推荐)

在当今快速发展的数字环境中&#xff0c;从移动App到基于Web的平台&#xff0c;软件已成为我们日常生活和工作不可或缺的一部分。然而&#xff0c;随着软件系统变得越来越复杂&#xff0c;如何确保其质量和可靠性已成为开发人员和测试人员所面临的一大重要挑战。 这就是软件测…

强化学习,第 3 部分:蒙特卡罗方法

文章目录 一、介绍二、关于此文章三、无模型方法与基于模型的方法四、V函数估计4.1 基本概念4.2 V-功能 五、Q 函数估计5.1 V函数概念5.2 优势5.3 Q函数 六、勘探与勘探的权衡七、结论 一、介绍 从赌场到人工智能&#xff1a;揭示蒙特卡罗方法在复杂环境中的强大功能    强化…

生命在于学习——Python人工智能原理(2.1)

二、机器学习 1、机器学习的定义 机器学习是指从有限的观测数据中学习出具有一般性的规律&#xff0c;并利用这些规律对未知数据进行预测的方法&#xff0c;通俗的讲&#xff0c;机器学习就是让计算机从数据中进行自动学习&#xff0c;得到某种知识。 传统的机器学习主要关注…

深度强化学习 Actor-Critic演员评论家 PPO

将策略(Policy Based)和价值(Value Based)相结合的方法&#xff1a;Actor-Critic算法&#xff0c;在强化学习领域最受欢迎的A3C算法&#xff0c;DDPG算法&#xff0c;PPO算法等都是AC框架。 一、Actor-Critic算法简介 Actor-Critic从名字上看包括两部分&#xff0c;演员(Actor…

Geoserver发布shp图层服务的样式控制及样式生成方式

在利用geoserver发布视频图层服务时&#xff0c;shp图层的样式可以在QGis文件中进行编辑&#xff1b;shp文件编辑后&#xff0c;需要导出样式文件&#xff0c;并在geoserver中进行注册&#xff0c;发布时对应shp图层文件时&#xff0c;需要选中对应样式&#xff0c;加载图层服务…

WorkPlus移动应用平台集成单点登录,实现统一门户解决方案

随着企业数字化转型的深入&#xff0c;移动办公已经成为企业提高工作效率和员工协作的重要途径。为了更好地管理企业移动应用&#xff0c;提升员工体验&#xff0c;简化登录流程&#xff0c;许多企业开始采用集成单点登录技术的企业移动应用平台&#xff0c;实现统一门户的目标…

实验室课程|基于SprinBoot+vue的实验室课程管理系统(源码+数据库+文档)

实验室课程管理系统 目录 基于SprinBootvue的实验室课程管理系统 一、前言 二、系统设计 三、系统功能设计 1管理员功能模块 2学生功能模块 3教师功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介…

PMP考试通关秘籍

考试大纲 考试大纲&#xff1a;考察维度3 个&#xff08;人、过程、商业环境&#xff09;&#xff1b;更加贴近真实项目趋势&#xff1b;侧重点从做事到关注人&#xff1b;对于项目经理的软技能要求更高&#xff0c;匹配 PM 能力模型。 人员&#xff08;42%&#xff09;&…

55页PDF|人工智能通用大模型(ChatGPT)的进展、风险与应对(附下载)

&#x1f449;获取方式&#xff1a; &#x1f61d;有需要的小伙伴&#xff0c;可以保存图片到wx扫描二v码免费领取【保证100%免费】&#x1f193;

3D技术的应用领域

3D技术在现代科技和工业中有广泛的应用&#xff0c;其涵盖的领域非常广泛&#xff0c;从娱乐到医学&#xff0c;再到制造业和建筑&#xff0c;3D技术正在改变我们理解和互动的方式。以下是一些主要的应用领域。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&…

k8s devops实战教程+生产实践+可就业

k8s devops实战教程 简介教程涉及到内容教程获取学习教程后的收货助学群 简介 越来越多的企业应用云原生化&#xff0c;催生很多应用的部署方式也发生了很多变化。 从物理机部署应用过度到虚机部署应用再到应用容器化&#xff0c;从单应用再到服务拆分为微服务&#xff0c;靠人…

linux查看是否被入侵(一)

1、查看当前系统状态 [rootbastion-IDC ~]#top #一般挖矿等病毒点用CPU比较大 2、查看当前登录用户(w\who) 3、检查系统日志 检查系统错误登陆日志&#xff0c;统计IP重试次数 [rootbastion-IDC ~]# lastb 4、查看近期用户登录情况 [rootkvm01 ~]# last -n 5 #-n 5 表示…

element el-table表格表头某一列表头文字或者背景修改颜色

效果如下 整体代码 &#xff0c;具体方法在最下面&#xff01; <el-table v-loading"listLoading" :data"sendReceivList" element-loading-text"Loading" border fit ref"tableList" :header-cell-class-name"addClass&quo…

揭秘APP广告变现的高效秘诀:如何让你的APP更赚钱?

在数字化时代&#xff0c;APP已成为人们获取信息、娱乐休闲的重要平台。对于许多内容创作者来说&#xff0c;如何通过APP实现盈利&#xff0c;是一个亟待解决的问题。而APP广告变现项目&#xff0c;正是其中一种备受关注的盈利模式。那么&#xff0c;如何有效地利用APP广告变现…

安泰电子:功率放大器的选择方法有哪些

选择适合的功率放大器是实现电子系统中的关键步骤之一。以下是一些选择功率放大器的常用方法和考虑因素&#xff1a; 功率需求&#xff1a;首先确定你的系统需要多大的功率输出。功率输出需求通常由被驱动设备的功率要求决定。计算出所需功率后&#xff0c;选择一个具有适当功率…

绿色阅读:旧书回收,让知识循环

在快节奏的现代社会中&#xff0c;知识的获取和更新速度日新月异。然而&#xff0c;在这个信息爆炸的时代&#xff0c;我们是否曾想过&#xff0c;那些曾经陪伴我们度过无数日夜、给予我们智慧和启迪的旧书&#xff0c;在它们完成使命后&#xff0c;是否应该被遗忘在角落&#…

IdentiFace——多模态人脸识别系统,可捕捉从情绪到性别的所有信息及其潜力

1. 概述 面部识别系统的开发极大地推动了计算机视觉领域的发展。如今&#xff0c;人们正在积极开发多模态系统&#xff0c;将多种生物识别特征高效、有效地结合起来。 本文介绍了一种名为 IdentiFace 的多模态人脸识别系统。该系统利用基于 VGG-16 架构的模型&#xff0c;将人…

Go 语言安装部署(超详细版本)

在学习和使用 Go 语言时&#xff0c;正确的安装和配置是非常重要的一步。本文将介绍如何在不同操作系统上安装 Go 语言&#xff0c;并讨论一些常见的配置选项&#xff0c;帮助读者更好地了解和使用 Go 语言。无论是初学者还是有一定经验的开发者&#xff0c;都能从本文中获得有…

buuctf-相册

题目提示找到邮箱 下载是一个apk文件 他都不建议安装到手机了 我还是不找麻烦动调了吧 他说是mail,那行吧 找mail 找到就是这一段 base64 s3 notebook 这里可以看见加载了native库 所以要IDA 打开so文件 apk就是一个压缩包,直接解压就行 lib里面就有so文件 再根据熟知的…