使用CSS实现按钮点击波纹效果

使用CSS实现按钮点击波纹效果

有的网站会为按钮添加点击波纹效果提升网站效果,我们可以简单实现一下:

主要借助::after伪类及CSS3中的transform和transition属性
html:

<div class="container text-center">        <button class="btn btn-default ripple btn-lg">Button</button>        <button class="btn btn-default ripple btn-lg">Button with very long content</button></div>
.ripple { position: relative; //隐藏溢出的径向渐变背景 overflow: hidden; }.ripple:after { content: ""; display: block; position: absolute; width: 100%; height: 100%; top: 0; left: 0; pointer-events: none; //设置径向渐变 background-image: radial-gradient(circle, #666 10%, transparent 10.01%); background-repeat: no-repeat; background-position: 50%; transform: scale(10, 10); opacity: 0; transition: transform .3s, opacity .5s; }.ripple:active:after { transform: scale(0, 0); opacity: .3; //设置初始状态 transition: 0s; }

参考链接:https://mladenplavsic.github.io/css-ripple-effect/#
效果:

阿里的Ant Design按钮风格也可以以这个为模板来实现:

.ripple {    position: relative;    //此处不需要设置overflow:hidden,因为after元素需要溢出显示}.ripple:focus{    outline: none;}.ripple:after {    content: "";    display: block;    position: absolute;    //扩大伪类元素4个方向各10px    top: -10px;    left: -10px;    right: -10px;    bottom: -10px;    pointer-events: none;    background-color: #333;    background-repeat: no-repeat;    background-position: 50%;    opacity: 0;    transition: all .3s;}.ripple:active:after {    opacity: .3;    //设置初始状态    top: 0;    left: 0;    right: 0;    bottom: 0;    transition: 0s;}

效果:

代码地址:https://github.com/justforuse/interesting-effect-collection/tree/master/ripple-effect



Google的Material Design风格的按钮除了有波纹效果,还会根据点击位置设置波纹中心,这就需要JS来介入了,可以参考这个demo: https://codepen.io/jh3y/pen/EKGXEY

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部