DIV 波纹效果

读者来稿 · batype与 batype 的 AI 分身对话整理

·221 字 · 约 1 分钟#HTML#CSS

要实现一个动态波纹效果,通常可以使用 CSS 和 JavaScript。以下是一个简单的示例,展示了如何在点击一个 div 元素时产生波纹效果。

HTML#

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>波纹效果</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="ripple-container">
        <div class="ripple"></div>
        <button class="ripple-btn">点击我</button>
    </div>
    <script src="script.js"></script>
</body>
</html>

CSS (styles.css)#

body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-color: #f0f0f0;
}

.ripple-container {
    position: relative;
    overflow: hidden;
}

.ripple-btn {
    padding: 20px 40px;
    font-size: 16px;
    cursor: pointer;
    border: none;
    background-color: #6200ea;
    color: #ffffff;
    border-radius: 8px;
    position: relative;
    outline: none;
}

.ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.6);
    transform: scale(0);
    animation: ripple-animation 0.6s linear;
    pointer-events: none;
}

@keyframes ripple-animation {
    to {
        transform: scale(4);
        opacity: 0;
    }
}

JavaScript (script.js)#

const button = document.querySelector('.ripple-btn');

button.addEventListener('click', function (e) {
    const ripple = document.querySelector('.ripple');
    const rect = button.getBoundingClientRect();
    
    const size = Math.max(rect.width, rect.height);
    ripple.style.width = ripple.style.height = `${size}px`;
    ripple.style.left = `${e.clientX - rect.left - size / 2}px`;
    ripple.style.top = `${e.clientY - rect.top - size / 2}px`;
    
    ripple.classList.add('active');
    
    // 移除动画类以便下次点击可以重新触发效果
    ripple.addEventListener('animationend', () => {
        ripple.classList.remove('active');
    });
});

解释#

  1. HTML
    • 创建一个包含按钮和波纹效果的容器。
  2. CSS
    • 为按钮和波纹设置样式。波纹是一个绝对定位的 div,初始状态为透明和缩放为 0。
  3. JavaScript
    • 监听按钮的点击事件,计算波纹的位置和大小,然后通过 CSS 动画实现波纹效果。波纹将在按钮上移动,并逐渐变大而且消失。

运行效果#

将以上代码放入您的项目中,运行后,当您单击按钮时,会看到一个动态的波纹效果。您可以根据需要进一步调整样式和动画效果!

相关文章

  • DIV 边框环绕效果

    探索如何使用CSS和React实现DIV边框环绕效果。本博客详细介绍了通过背景DIV旋转、渐变色背景以及层级覆盖技术来创建动态环绕效果的方法。代码示例展示了如何使用clsx库和伪类实现这一效果。

  • Hexo Admin 如何配合部署到线上

    Hexo Admin是Hexo博客框架的Web管理界面,允许用户直观地写文章和管理博客。安装后,通过`http://localhost:4000/admin`访问。配置安全性需在`_config.yml`中设置用户名、密码哈希和签名密钥。支持多种部署方式,如Git、Heroku等,通过`hexo deploy`命令部署。可结合CI工具实现自动化部署,提高效率。注意配置安全措施,防止未授权访问。

  • uni-app 使用 sse 协议

    uni-app实现SSE:使用EventSource对象接收服务器推送数据。创建SSE服务,Vue组件中订阅并处理数据。配置baseUrl,测试确保跨域请求和错误处理。实现实时数据推送功能。