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 position fixed固定居中问题解决方案
Aug 19 HTML / CSS
你不知道的5个HTML5新功能
Jun 28 HTML / CSS
html5中去掉input type date默认样式的方法
Sep 06 HTML / CSS
canvas粒子动画背景的实现示例
Sep 03 HTML / CSS
基于HTML5的WebSocket的实例代码
Aug 15 HTML / CSS
html5触摸事件判断滑动方向的实现
Jun 05 HTML / CSS
H5混合开发app如何升级的方法
Jan 10 HTML / CSS
canvas线条的属性详解
Mar 27 HTML / CSS
吃透移动端 Html5 响应式布局
Dec 16 HTML / CSS
CSS 文字装饰 text-decoration & text-emphasis 详解
Apr 06 HTML / CSS
css3实现背景图片颜色修改的多种方式
Apr 13 HTML / CSS
Li list-style-image 图片垂直居中实现方法
May 21 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
escape unescape的php下的实现方法
2007/04/27 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
生成随机字符串和验证码的类的PHP实例
2013/12/24 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
php遍历CSV类实例
2015/04/14 PHP
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
JavaScript中如何调用Java方法
2020/09/16 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
解决vue scoped html样式无效的问题
2020/10/24 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
python脚本第一行如何写
2020/08/30 Python
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
内勤岗位职责范本
2015/04/13 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
安全生产标语口号
2015/12/26 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
python对文档中元素删除,替换操作
2022/04/02 Python