实现水滴涟漪动画按钮

CSS+JS实现水滴涟漪动画按钮效果的示例代码

编程开发 2020-10-19 03:42:19 79

导读

代码如下所示:<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-widt……

代码如下所示:

<!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>     <style>         .btn{              display: block;              width: 300px;              height: 100px;             margin: 50px;              outline: 0;              overflow: hidden;               position: relative;              transition: .3s;              cursor: pointer;              user-select: none;               text-align: center;              line-height: 100px;              font-size: 50px;              background: tomato;              color: #fff;               border-radius: 10px;         }         .btn>span{              position: absolute;              left: 0;              top: 0;             width: 100%;              height: 100%;}         .btn>span:after{              content: '';              position: absolute;              background: transparent;              border-radius:50%;              width: 100%;              padding-top: 100%;              margin-left: -50%;              margin-top: -50%;              left: var(--x,-100%);              top: var(--y,-100%);          }         .btn:active{              background: orangered;         }         .btn>input[type=checkbox]{             display: none         }         .btn>input[type=checkbox]+span:after{             animation: ripple-in 1s;         }         .btn>input[type=checkbox]:checked+span:after{             animation: ripple-out 1s;         }         @keyframes ripple-in{             from {                 transform: scale(0);                 background: rgba(0,0,0,.25)             }             to {                 transform: scale(1.5);                 background: transparent             }         }         @keyframes ripple-out{             from {                 transform: scale(0);                 background: rgba(0,0,0,.25)             }             to {                 transform: scale(1.5);                 background: transparent             }         }     </style> </head> <body>     <label tabindex="1">         <input type="checkbox"><span onclick="ripple(this,event)">button</span>     </label> </body> <script>     function ripple(dom,ev){         console.log(ev)         var x = ev.offsetX;         var y = ev.offsetY;         dom.style.setProperty('--x',x+'px');         dom.style.setProperty('--y',y+'px'); } </script> </html>

CSS+JS实现水滴涟漪动画按钮效果的示例代码


1253067 TFnetwork_cn