Sample code for implementing water drop ripple animation button effect with CSS+JS

Sample code for implementing water drop ripple animation button effect with CSS+JS

The code looks like this:

<!DOCTYPE html>
<html lang="en">
<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 class="btn" 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> 

insert image description here

This concludes this article about the sample code for implementing water drop ripple animation button effect with CSS+JS. For more relevant CSS water drop ripple animation button content, please search 123WORDPRESS.COM’s previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

<<:  Detailed explanation of Nginx+Tomcat load balancing cluster installation and configuration case

>>:  Summary of knowledge points on using calculated properties in Vue

Recommend

In-depth understanding of MySQL long transactions

Preface: This article mainly introduces the conte...

Tutorial on downloading, installing, configuring and using MySQL under Windows

Overview of MySQL MySQL is a relational database ...

In-depth understanding of the seven communication methods of Vue components

Table of contents 1. props/$emit Introduction Cod...

Who is a User Experience Designer?

Scary, isn't it! Translation in the picture: ...

Simple encapsulation of axios and example code for use

Preface Recently, when I was building a project, ...

How to manually deploy war packages through tomcat9 on windows and linux

The results are different in Windows and Linux en...

Explain TypeScript enumeration types in detail

Table of contents 1. Digital Enumeration 2. Strin...

Sample code for displaying a scroll bar after the HTML page is zoomed out

Here is a record of how to make a scroll bar appe...

A simple way to achieve scrolling effect with HTML tag marquee (must read)

The automatic scrolling effect of the page can be...

Linux process management tool supervisor installation and configuration tutorial

Environment: CentOS 7 Official documentation: htt...

Solution to the problem of MySQL deleting and inserting data very slowly

When a company developer executes an insert state...

CSS optimization skills self-practice experience

1. Use css sprites. The advantage is that the smal...

Basic concepts and common methods of Map mapping in ECMAScript6

Table of contents What is a Mapping Difference be...

mysql trigger creation and usage examples

Table of contents What is a trigger Create a trig...