首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何设置从中心位置到全直径的波纹效果动画

从中心位置到全直径的波纹效果动画可以通过CSS和JavaScript来实现。以下是一种实现方式:

  1. 首先,在HTML中创建一个容器元素,用于显示波纹效果动画。例如:
代码语言:txt
复制
<div id="ripple-container"></div>
  1. 在CSS中设置容器元素的样式,包括宽度、高度、背景颜色等。例如:
代码语言:txt
复制
#ripple-container {
  width: 200px;
  height: 200px;
  background-color: #e0e0e0;
  position: relative;
  overflow: hidden;
}
  1. 使用JavaScript监听容器元素的点击事件,并在点击位置创建波纹效果。例如:
代码语言:txt
复制
var container = document.getElementById("ripple-container");

container.addEventListener("click", function(event) {
  // 获取点击位置相对于容器的坐标
  var x = event.clientX - container.offsetLeft;
  var y = event.clientY - container.offsetTop;

  // 创建波纹元素
  var ripple = document.createElement("span");
  ripple.className = "ripple";
  ripple.style.left = x + "px";
  ripple.style.top = y + "px";

  // 将波纹元素添加到容器中
  container.appendChild(ripple);

  // 动画结束后移除波纹元素
  setTimeout(function() {
    ripple.parentNode.removeChild(ripple);
  }, 1000);
});
  1. 在CSS中设置波纹元素的样式,包括宽度、高度、背景颜色、动画效果等。例如:
代码语言:txt
复制
.ripple {
  position: absolute;
  width: 0;
  height: 0;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.3);
  animation: ripple-effect 1s linear;
}

@keyframes ripple-effect {
  0% {
    transform: scale(0);
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

通过以上步骤,点击容器元素时,会在点击位置创建一个波纹效果,并逐渐扩大并消失。

这种波纹效果动画可以应用于按钮点击、用户交互等场景,增加界面的交互性和视觉效果。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动推送、移动分析):https://cloud.tencent.com/product/mobile
  • 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云游戏多媒体引擎(GME):https://cloud.tencent.com/product/gme
  • 腾讯云音视频处理(VOD):https://cloud.tencent.com/product/vod
  • 腾讯云网络安全(DDoS 防护、Web 应用防火墙):https://cloud.tencent.com/product/ddos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Vue组件设计 | 实现水波涟漪效果点击反馈指令

当用户点击时,会以点击中心为圆心产生一个水波扩散涟漪效果,适用各个场景,美观又不浮夸,关键是可以给用户带来很直观反馈。...定制一个水波纹默认样式 水波纹实际上就是通过用户点击位置生成一个小圆圈,并且尺寸逐渐扩大整个被点击元素一个过程,所以这里先制定一个水波基本样式,并设置好过度动画,过度动画应该是一个先慢后快一个过程..., 0.6), opacity 0.08s linear; will-change: transform, opacity; pointer-events: none; } 复制代码 计算水波纹位置直径...如果确定了水波直径、创建时(x,y)、过度动画结束时(x,y),我们就可以通过transition去渲染水波动画了,创建时(x,y)就是用户点击位置,但是水波直径和过度动画结束时(x,y...我们元素都是矩形,不论用户元素任意坐标进行点击,以矩形斜边作为直径圆都可以完美的覆盖整个元素,斜边计算我们利用小学数学知识求两边平方和进行开方得到,下面是过度动画结束时水波推演图。

83530

【CSS3】CSS3 动画 ④ ( 使用动画制作地图热点图 )

一、需求说明 实现如下效果 , 在一张地图上 , 以某个位置中心点 , 向四周发散 ; 核心 是实现 向四周 发散 波纹动画 ; 二、动画代码分析 1、地图背景设置 地图背景设置 : 地图 是...盒子 , 使用 绝对定位 定位 地图图片 中 北京 位置 ; 调试 界面中 , 找到 city 盒子模型位置 , 双击其 top 和 left 尺寸 , 使用鼠标滚轮修改该 盒子模型 绝对定位位置...2 ~ 3 个 可缩放原型图片 作为 热点动画 波纹 ; 页面的布局如下 : 其中 dot 盒子是 中心小圆点 盒子 , bowen1 ~ bowen3 是三个波纹效果动画盒子 ; ... 4、动画定义 动画实现如下 : 波纹效果动画 , 就是将...border-radius: 50%; } 6、波纹效果盒子实现 波纹效果 盒子 实现 : 该盒子始终要放置在 city 盒子中心位置 , 因此使用绝对定位 position: absolute

32820
  • 【Flutter 专题】133 图解自定义 ACEWaterButton 水波纹按钮

    波纹 和尚预想实现水波纹效果则必然离不开 Animation 动画,使用动画方式也有多种,可以继承 AnimatedWidget 也可以使用 AnimationController 自定义动画样式...,若起始位置中心则无需添加内置圆半径;若想增大或见效水波纹范围可以自由调整 AnimationController.value 进度范围; // 中心点扩展 double _radius = innerSize...和尚在通过 ACEWaterPainter 绘制水波纹过程中,起始位置内置圆开始,那是否可以省略第一步内置圆呢?...暂时先不缺省,因为和尚在设置波纹扩散过程中,同时设置了透明度渐变,若缺省内置圆会影响 innerIcon 展示效果;但内置圆绘制位置可以调整,也可以在 ACEWaterPainter 中进行绘制;...,和尚默认设置为 true 进行重绘; ---- ACEWaterButton 案例源码 ---- 和尚对 ACEWaterButton 水波纹按钮简单效果已满足,但还不够完善,对于重绘机制还需要优化

    82930

    手撕一个让人「欲罢不能」波纹选中控件

    普通选中 Material Design 就给出了很好指导,比如点击时候控件有一个 z轴 提升,控件背景色根据手指点击位置出现一个过渡效果。 比如今天要介绍这个水波纹选中效果。 ?...下边就来看看如何通过自定View方式实现一个水波纹选中效果。...获取点击,计算水波纹最长半径 记录水波纹圆心坐标 center 上面的代码中,重写了 onTouchEvent ,并在接收到按下事件时,开始扩展水波或者收缩水波纹,并且记录下手指按下位置,这个位置就是水波纹圆心...计算水波纹最长半径 看一个简单 gif 动画 ? 水波纹 这里以控件中心为例,同心圆不断扩展,最后覆盖整个控件。我们知道,同心圆绘制时候,超出控件部分会被自动截断,所以最后效果是这样 ?...(当然了,你也可以使用 y 相关参数),这样就可以得到 0 longestRadius 递增同心圆半径。

    1.1K40

    Unity 水、流体、波纹基础系列(二)——方向流体(Directional Flow)

    如果只看静态效果而不是动画时候会尤为明显, 因为你无法预估真正流向应该是什么样。这主要是因为波浪和波纹对齐方式是错误。它们应该沿着流向拉长,而不是垂直于流向。 ?...(网格分辨率设置为10) 通过将用于采样贴图UV乘以网格分辨率,然后丢弃小数部分,可以将流体贴图切成图块。这使我们瓦片具有固定UV坐标,0网格分辨率。...它在中途处于强度。B另一种情况是,每个图块中间权重为零。而且由于我们现在仅将B偏移一半,因此这正是其失真线显示位置。 ?...(中心流体采样) 现在,我们可以正确使用流数据,但是准确度取决于网格分辨率。分辨率越高,流动曲线越平滑。但是也不能将分辨率设置得太高,因为会出现波纹图案。 ?...可以发现与动画过程中流量相匹配脉冲模式,但是咋一看很难注意。将速度设置为零时,会出现此问题更明显体现。

    4.3K50

    那些年下过大雨

    /** * 雨滴容器 * 宽度为15px,高度为120px * 0.5秒内屏幕上方移动到屏幕90%高度 * 模仿雨滴下降过程 */ .drop { position: absolute...,加上设置圆角,模拟水花溅起时弧形 * 设置动画,当雨滴下降到地面时,透明度设置为1,同时通过设置缩放 * 模拟水花放大过程 */ .splat { width: 15px;.../** * 波纹 * 沿X轴旋转75度,造成椭圆效果 * 动画效果: * 中心定格,设置波纹延迟,波纹逐渐变大造成扩散效果 * 先上在下再上,造成波纹跌宕效果 */ #ripples {.../** * 水珠 * 中心定位 * 通过控制水花垂直方向位移,造成溅起效果 * 通过控制水平方向便宜,造成运动效果 */ @keyframes bounce1 { /* 中心点 */ 0%...// 整个动画关键点 // 整个动画其实是由一条条细线组成,根据下落时差,造成瀑布效果 // 根据计算出屏幕宽度,每条细线1px,然后在屏幕上均匀分布360色 function anim() {

    83750

    Android 设置主题实现点击波纹效果示例

    触摸反馈: 在Android L5.0中加入了触摸反馈动画。 其中最明显,最具代表性就是波纹动画,比如当点击按钮时会点击位置产生类似于波纹扩散效果。...波纹效果(Ripple): 当你使用了Material主题后,波纹动画会自动应用在所有的控件上,我们当然可以来设置其属性来调整到我们需要效果。...可以通过如下代码设置波纹背景: android:background="?...android:attr/selectableItemBackgroundBorderless"波纹超出边界 使用效果如下: B1是不设任何背景按钮 B2设置了?...设置颜色 我们也可以通过设置xml属性来调节动画颜色,从而可以适应不同主题: android:colorControlHighlight:设置波纹颜色 android:colorAccent:设置

    89840

    如何实现一个丝滑点击水波效果

    本文为Varlet组件库源码主题阅读系列第九篇,读完本篇,可以了解如何使用一个div创建一个点击水波效果。...div元素,然后设置透明度为0、初始位置、缩放、大小、背景颜色,然后添加为被点击元素子元素,最后在20ms以后修改div位置、缩放、透明度,只要设置了它transation过渡属性即可实现过渡效果...;手指点击位置是水波圆初始中心点,然后计算其左上角坐标x、y为水波元素初始位置;水波圆最终中心点其实就是被点击元素中心点,换算成左上角坐标centerX、centerY即为水波元素最终位置。...因为水波元素为被点击元素子元素,所以这些坐标都是相对于被点击元素左上角坐标计算绿色圆过渡成红色圆,透明度、大小、位置变化就是水波扩散效果。...,ANIMATION_DURATION减去它即表示250ms还剩下时间,因为前面提到了水波创建扩散完成整个过程大概耗时20ms + 200ms = 220ms,所以延迟dealy时间,也就是等待水波动画完成后再让水波消失

    58720

    flash做动画教程(基础篇)

    大家好,又见面了,我是你们朋友栈君。...,来选择文档宽高 二、新建元件或者是导入外部图片 有的图片是不需要自己加工素材就从外部导入 导入外部图片步骤: 文件-导入-导入库-选择图片位置 新建元件 新建元件之后就出现一个空白文档...,在这个文档里面编辑就可以了 小知识: 曲线绘制:首先画一个直线,然后点击箭头放在线上,就会呈现一个弧度 查看元件方法: 元件全部在库里面 制作动画过程 要实现这样效果: 第一步、...; 在第1秒和第三十秒之间任一位置,右击创建补间动画, (背景层) 第二步、 新建一个图层, 把落石添加到背景层上,选择第五秒时候出现落石 接下来,就是让落石往下落到某个位置 落石落下{ 添加引导层...) 创建补间动画,记住如果创建补间动画以后,线是虚线那么操作有误,只有实线才是操作 最后、去掉引导线, 关闭眼睛 } 第三步; 发送波纹和接收波纹变动 时间轴如下: 具体操作都一样,我们来看看最后效果

    2.3K20

    Android 贝塞尔曲线实现水纹波动效果

    图中我们可以看出,水纹不断波动并且上涨,当上涨超过屏幕时,自动最初高度波动,接下来,我们就来看如何实现这一效果。...矩形表示手机屏幕(这个自定义view默认是充满屏幕),波浪线表示水纹波动效果。 一段水波纹是曲线AD,我们只需要让这段曲线不断滚动就实现了水波纹动画。...曲线AD我们可以用贝塞尔曲线分别画出曲线AC和曲线CD,我们之所以屏幕外开始画是因为水波纹要不断波动要确保任何时刻都能看到水波纹,所以我们需要在屏幕前后及屏幕内画满水波纹。...设置波纹高度WAVE_HEGHT为100,曲线AD长度即水波纹波长WAVE_LENGTH为1500(具体值根据显示效果修改) 设置起始点Y点wavestartY为400; /** * 波纹长度...水波纹升涨 最后我们让水波纹升涨就大功告成了,水波纹升涨只是绘制时y起点升高,所以我们让绘制起点每次绘制时都减少一个像素 当值小于0时候,重新设置为初始值400即可 wavestartY = wavestartY

    1.2K10

    Web 组态运用之用户数据 ARPU 分析图

    界面简介及效果预览 通过 HT 2D 组态矢量图标绘制了三个水池,并且通过管道水滴动画,串联起了动画流程。 ?...很显然对于平移没有边界限定是不行,通过对于边界限定了一个范围,并在这个范围内定义了一个动画对象 anim,然后通过 HT 动画函数**ht.Default.startAnim()**来启动这个动画效果...: // 水池晃动动画 updatePoolDeep(pools) { // 设置每次位置水池晃动波纹偏移值 let offsetDlt = 2; // 设置水池晃动波纹动画对象...其实现方式也多种多样,而本系统是采用自己封装了一个在矩形管道内随机生成水滴流动效果动画。通过构造一个流动类,类里面定义了基本一些创建水滴节点、初始化水滴位置以及水滴动画进行。 ?...设置随机偏移量 let offset = Math.floor(Math.random() * OFFSET_MAX * 2) - OFFSET_MAX; // 设置水滴位置

    69240

    Android OpenGL ES 实现动态(水波纹)涟漪效果

    动态(水波纹)涟漪效果 1 水波纹效果原理 最近一个做视频滤镜朋友,让我给他做一个动态水波纹效果,具体就是:点击屏幕上某一位置,然后波纹以该位置中心向周围扩散。...模拟物理世界中波纹 最后观察出,物理世界中水波纹特点如上图所示,水面的正上方往下看,在凹面上方观察是缩小效果,而在凸面上方观察是放大效果,然后整个水波纹效果就是放大和缩小效果交叉排列...水波纹效果原理如下图所示,我们以点击位置中心,发生形变区域是内圆和外圆之间区域,以归一化时间变量 u_Time 大小为半径构建圆(蓝色虚线)为边界,设定内侧是实现缩小效果区域,外侧为实现放大效果区域...2 水波纹效果实现 基于上节原理分析,实现水波纹效果主要原理就是实现一定区域内缩小和放大效果,我们以平滑函数输出值作为纹理采样坐标的偏移程度。...(fmod(m_FrameIndex, 150) / 120); GLUtils::setFloat(m_ProgramObj, "u_Time", time); //设置点击位置

    2.2K20

    Android Heroes Reading Notes 5

    现在Android 5.X提供了三种Transition类型: 进入和退出动画:两者又包括了explode(分解)、slide(滑动)和fade(淡出)三种效果; 使用方式:假设ActivityA跳转到...(7)MD动画效果 Ripple效果波纹效果有两种:波纹有边界和波纹无边界。前者是指波纹被限制在控件边界,后者指波纹不会限制在控件边界中,会呈圆形发放出去。...方法可以创建一个RevealAnimator动画,代码如下,其中centerX/centerY表示动画开始位置,startRadius和endRadius分别表示动画起始半径和结束半径。...return new RevealAnimator(view, centerX, centerY, startRadius, endRadius); } 下面是一个例子,该例子会呈现出图片从一个点以圆形方式放大图片大小动画效果...StateListAnimator是将动画效果(objectAnimator)配置原来selectoritem中来实现,看下面的例子: //定义StateListAnimator <?

    91610

    目前最流行 5 大 Vue 动画库,使用后太炫酷了

    export default { components: { "fake3d-image-effect": Fake3dImageEffect, }, }; 或者,如果您想让它成为可以应用程序中任何位置访问全局插件...props,比如 fill-height-content prop,它将元素高度设置为 100vh(高),以及 tag 属性,它允许我们选择 用于包装其他子元素首选语义元素。...v-wave 这个库允许我们通过简单地添加一个新 v-wave 属性在单击标记元素时为标记元素添加漂亮波纹效果,类似于材质设计中波纹效果。... 结果: vue-animate-onscroll 该库包含用于在元素滚动到视口时为其设置动画指令。...有了这篇文章,希望您能够各种可用动画库中进行选择,并找到一个完美地补充您 Vue.js 应用程序动画库。

    13.2K20

    有赞真赞,官网水波纹动画这么酷

    在我心目中有赞前端团队感觉非常不错,特意看了看他们网站有没有好玩动画,最终发现一个水波纹动画,感觉挺有意思,和小伙伴们分享一下。有没有发现这个弹窗底部有一个水波纹一直在动。 ?...看到这个效果,我没想到有什么好实现方式,最终通过分析他们代码还原了这个效果。 ? 做动画其实还有一招「欺骗用户眼睛」,看似很高大尚动画,其实可能很简单。...就像今天这个动画,其实就是一个旋转和位移就搞定了。 首先看一个效果,椭圆旋转效果是什么样? 如果让一个椭圆做旋转动画,你会发现它有点像水波纹运动。 ?...有赞实现,其实只是把椭圆宽高设置很大,然后让这个圆缓慢移动,椭圆底部恰好与弹窗底部能够重叠一起,把蓝色底部遮挡住了一部分: ?...这里一个水波纹效果实现思路就分析完了,大家加油!

    79331

    Android 自定义球型水波纹带圆弧进度效果(实例代码)

    不懂同学可以自行百度查阅。 水波纹实现:直接使用贝塞尔曲线Path.quadTo()实现,通过拉伸水平直线绘制波浪效果。...至于波浪移动,可以通过移动平移水平线起始位置来实现,在使用动画循环即可,为了能够稳定显示,绘制波浪时需要严格绘制整数倍周期波浪。...生命周期控制:为了减少某些时刻CPU损耗,通过控制变量自定义lifeDelegate(基于kotlin代理模式实现)来控制动画开始暂停。...0x2 const val DESTROY = 0x3 } private var mWidth = 0 //控件整体宽度 private var mHeight = 0 //控件整体高度 //控件中心位置...自定义球型水波纹带圆弧进度效果(实例代码),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

    1.2K20

    自定义View实现横向双水波纹进度条

    HorizontalWaveProgressView.GIF 网上垂直波纹进度条很多,但横向很少,将垂直波纹改为水平还遇到了些麻烦,现在完善后发布出来,希望遇到的人少躺点坑。...path起始点为(0,0)可根据进度动态改变,然后循环画曲线,长度是有几个波浪就是多长,然后连接到view高度位置,最后到(0,0),形成一个封闭区域,这样就实现了一个填充水波效果。...secondWavePath.lineTo(0, waveActualSizeHeight); secondWavePath.close(); return secondWavePath; } 3.设置动画使进度和水波纹变化...//设置循环播放 waveProgressAnimator.setRepeatCount(Animation.INFINITE); //让动画匀速播放,避免出现波浪平移停顿现象...结语 通过这个项目,主要可以学到贝塞尔曲线,也可以搭配上不同动画,搞定产品各种交互效果。对应文件:HorizontalWaveProgressView.java

    72420
    领券