5分钟实现鼠标点击波纹特效 html+css+js

5分钟实现鼠标点击波纹特效 html+css+js先看效果,最后有完整源码: 实现: 定义标签: 卡片和文字的基本样式: cursor: pointer; 鼠标样式为小手。 overflow: hidden; 子元素大小超出卡片区域的被隐藏。 use

先看效果,最后有完整源码:

在这里插入图片描述

实现:

  1. 定义标签:
 <div class="card">
        <img src="3.3.png" alt="x" width="100%">
        <h3>北极光之夜</h3>
        <p >
            生活下去,错误下去,堕落下去,为胜利而欢呼,从生命中重新创造生命!
        </p>
    </div>
  1. 卡片和文字的基本样式:
 .card{
            width: 200px;
            height: 300px;
            box-shadow: 1px 1px 5px #555;
            cursor: pointer;
            background-color: rgb(243, 243, 243);
            position: relative;
            overflow: hidden;
        }
        .card h3,.card p{
            padding: 5px;
            text-align: center;
            font-family: 'fangsong';
            font-weight: bold;
            user-select: none;
        }

cursor: pointer; 鼠标样式为小手。 overflow: hidden; 子元素大小超出卡片区域的被隐藏。 user-select: none; 文本不可选中。

  1. js部分,见注释。
 <script>
         /* 获取元素 */
         var card = document.querySelector('.card');
          /* 绑定点击事件 */
         card.addEventListener('click',function(e){
              /* 获取鼠标点击的水平位置 */
             let x = e.clientX - this.offsetLeft;
             /* 获取鼠标点击的垂直位置 */
             let y = e.clientY - this.offsetTop;
              /* 创建一个span元素 */
             let circle = document.createElement('span');
             /* 为span元素添加定位的 left 属性 */
             circle.style.left = x + 'px';
              /* 为span元素添加定位的 top 属性 */
             circle.style.top = y + 'px';
              /* 卡片添加创建好的span元素 */
             card.appendChild(circle);
             /* 1s后移除span元素 */
             setInterval(function(){
                 circle.remove();
             },1000)

         })

    </script>
  1. 添加上一步创建的 span 元素的css样式
  .card span{
            position: absolute;
            transform: translate(-50%,-50%);
  
            background-color: rgb(255, 254, 254);
            border-radius: 50%;
            animation: big 1s  ;
        }
        @keyframes big{
            0%{
                width: 0px;
            height: 0px;
            opacity: 1;
            }
            100%{
                width: 400px;
            height: 400px;
            opacity: 0;
            }
        }

position: absolute; 绝对定位。 transform: translate(-50%,-50%); 向左和上移动自身宽度和高度的一半。 animation: big 1s; 定义动画,刚好1s完成动画 。 opacity: 1; 不透明。 opacity: 0; 透明。

完整源码:

<!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> *{ margin: 0; padding: 0; box-sizing: border-box; } body{ height: 100vh; display: flex; justify-content: center; align-items: center; background-image: radial-gradient(white,black); } .card{ width: 200px; height: 300px; box-shadow: 1px 1px 5px #555; cursor: pointer; background-color: rgb(243, 243, 243); position: relative; overflow: hidden; } .card h3,.card p{ padding: 5px; text-align: center; font-family: 'fangsong'; font-weight: bold; user-select: none; } .card span{ position: absolute; transform: translate(-50%,-50%); background-color: rgb(255, 254, 254); border-radius: 50%; animation: big 1s ; } @keyframes big{ 0%{ width: 0px; height: 0px; opacity: 1; } 100%{ width: 400px; height: 400px; opacity: 0; } } </style>
</head>
<body>
    <div class="card">
        <img src="3.3.png" alt="x" width="100%">
        <h3>北极光之夜</h3>
        <p >
            生活下去,错误下去,堕落下去,为胜利而欢呼,从生命中重新创造生命!
        </p>
    </div>
    <script> var card = document.querySelector('.card'); card.addEventListener('click',function(e){ let x = e.clientX - this.offsetLeft; let y = e.clientY - this.offsetTop; let circle = document.createElement('span'); circle.style.left = x + 'px'; circle.style.top = y + 'px'; card.appendChild(circle); setInterval(function(){ circle.remove(); },1000) }) </script>
</body>
</html>

总结:

不止卡片,在按钮上,菜单上等等都可以用。 其它文章~: 简约时钟特效 html+css+js 赛博朋克风格按钮 html+css 响应式卡片悬停效果 html+css 水波加载动画 html+css 导航栏滚动渐变效果 html+css+js 书本翻页 html+css 3D立体相册 html+css 炫彩流光按钮 html+css 记一些css属性总结(一) Sass总结笔记 ……等等

在这里插入图片描述

今天的文章5分钟实现鼠标点击波纹特效 html+css+js分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/14062.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注