css3实现冲击波效果的示例代码


Posted in HTML / CSS onJanuary 11, 2018

近日,很多浏览器按钮点击会出现以下冲击波效果,出于好奇,参考网上的资料,将这个效果研究实现下。

css3实现冲击波效果的示例代码

实现思路:

观察波由小变大,涉及的css3属性变化有width,height,left,top,opacity,首先通过伪类实现冲击波层,同时需要设置冲击波前后的中心点位置(这里涉及一点点数学知识:画图计算两个点的位置),最后设置transition-duration: 0实现瞬间变化,ps学习到用a:active可以模拟鼠标实现点击的效果

简单画下图(很菜):

css3实现冲击波效果的示例代码

实现的代码:

<html>
  <head>
  <meta charset="UTF-8">
  <title>实现冲击波--数学知识很重要</title>
  <style>
  *{
  margin:0;
  padding:0;
  box-sizing:border-box;
  }
  html,body{
  font-family:"微软雅黑";
  }
  .wave{
  position:relative;
  float:left;
  width:50%;
  height:420px;
  }
  .wave a{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  display:inline-block;
  width:120px;
  height:50px;
  /*margin-left:-60px;
  margin-top:-25px;*/
  line-height:50px;
  text-align:center;
  border-radius:5px;
  color:#fff;
  font-size:16px;
  cursor:pointer;
  /*overflow:hidden;*/
  
  }
  #wave1{
  background-color:#00BFFF;
  }
  #wave2{
  background-color:#009955;
  }
  #wave1 a{
  background-color:burlywood;
  }
  #wave2 a{/*宽度不确定长度*/
  width:50%;
  height:50px;
  background-color:cadetblue;
  }
  .wave a:after{
  /*画图
 ,假设left:0;top:0然后画出两个中心点的水平和垂直距离*/
  content: "";
  display: block;
  position: absolute;
  left: -40px;
  top: -75px;
  width: 200px;
  height: 200px;
  background: rgba(255,255,255,0.8);
  border-radius: 50%;
  opacity:0;
  transition: all 1s;
  }
  .wave a:active:after{
  /*位于中间即是a的中点*/
  width: 0; 
  height: 0; 
  left:60px; 
  top: 25px;
  opacity: 1; 
  transition-duration: 0s;
  }
  
  #wave2 a:after{
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  }
  #wave2 a:active:after{
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  }
  </style>
  </head>
  <body>
  <!--实现冲击波按钮确定长度-->
  <div class="wave" id="wave1">
  <a>点我</a>
  </div>
  <!--实现冲击波按钮不确定长度时-->
  <div class="wave" id="wave2">
  <a>点我哈哈</a>
  </div>
  </body>
  </html>

实现的效果:

css3实现冲击波效果的示例代码

github代码:实现冲击波代码

备注:2018/01/09更新了考虑按钮长度不确定的情况,同时github代码已经更新

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3 毛玻璃效果
Aug 14 HTML / CSS
CSS3实现苹果手机解锁的字体闪亮效果示例
Jan 05 HTML / CSS
HTML5标签小集
Aug 02 HTML / CSS
html5中地理位置定位api接口开发应用小结
Jan 04 HTML / CSS
html5构建触屏网站之网站尺寸探讨
Jan 07 HTML / CSS
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
Sep 02 HTML / CSS
使用html5 canvas创建太空游戏的示例
May 08 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
May 15 HTML / CSS
详解HTML5中rel属性的prefetch预加载功能使用
May 06 HTML / CSS
关于HTML5语义标签的实践(blog页面)
Jul 12 HTML / CSS
html5自动播放mov格式视频的实例代码
Jan 14 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
Jan 25 HTML / CSS
css3如何绘制一个圆圆的loading转圈动画
Jan 09 #HTML / CSS
浅谈CSS3中的变形功能-transform功能
Dec 27 #HTML / CSS
css3的动画特效之动画序列(animation)
Dec 22 #HTML / CSS
css3实现多个元素依次显示效果
Dec 12 #HTML / CSS
浅谈css3中calc在less编译时被计算的解决办法
Dec 04 #HTML / CSS
浅谈css3新单位vw、vh、vmin、vmax的使用详解
Dec 01 #HTML / CSS
浅谈css3中的渐进增强和优雅降级
Dec 01 #HTML / CSS
You might like
php利用header函数下载各种文件
2016/08/24 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
Python六大开源框架对比
2015/10/19 Python
python实现12306火车票查询器
2017/04/20 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
vue常用指令代码实例总结
2020/03/16 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
大学生毕业自我评价范文分享
2013/11/07 职场文书
工程管理造价应届生求职信
2013/11/13 职场文书
大学活动策划书范文
2014/01/10 职场文书
大学生创业感言
2014/01/25 职场文书
创业计划书的主要内容有哪些
2014/01/29 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
党员公开承诺事项
2014/03/25 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
检讨书之工作不认真
2019/08/14 职场文书
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL
Windows server 2012搭建FTP服务器
2022/04/29 Servers