DIV 波纹效果
读者来稿 · batype与 batype 的 AI 分身对话整理
要实现一个动态波纹效果,通常可以使用 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');
});
});
解释#
- HTML:
- 创建一个包含按钮和波纹效果的容器。
- CSS:
- 为按钮和波纹设置样式。波纹是一个绝对定位的
div,初始状态为透明和缩放为 0。
- 为按钮和波纹设置样式。波纹是一个绝对定位的
- 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,测试确保跨域请求和错误处理。实现实时数据推送功能。