css 语言 CSS 制作按钮长按触发波纹特效示例

CSS阿木 发布于 2025-06-18 4 次阅读


CSS 制作按钮长按触发波纹特效示例

随着前端技术的发展,用户界面(UI)设计越来越注重交互性和视觉效果的结合。在众多交互效果中,波纹特效因其独特的视觉冲击力而受到广泛关注。本文将围绕CSS技术,通过一个按钮长按触发波纹特效的示例,详细讲解如何实现这一效果。

波纹特效是一种常见的视觉特效,常用于按钮、输入框等元素上,以增强用户的交互体验。我们将使用纯CSS技术来实现一个按钮长按触发波纹特效的示例。

实现步骤

1. HTML结构

我们需要一个按钮元素,用于触发波纹特效。以下是按钮的HTML结构:

html

<button id="ripple-btn">点击我</button>


2. CSS样式

接下来,我们将为按钮添加一些基本的样式,并定义波纹特效的样式。

css

/ 按钮基本样式 /


ripple-btn {


padding: 10px 20px;


border: none;


background-color: 4CAF50;


color: white;


border-radius: 5px;


cursor: pointer;


outline: none;


overflow: hidden;


}

/ 波纹特效样式 /


@keyframes ripple {


0% {


transform: scale(0);


opacity: 1;


}


100% {


transform: scale(4);


opacity: 0;


}


}

.ripple {


position: absolute;


border-radius: 50%;


transform: scale(0);


animation: ripple 0.6s linear;


}


3. JavaScript交互

为了实现长按触发波纹特效,我们需要使用JavaScript来监听按钮的`mousedown`和`mouseup`事件。以下是JavaScript代码:

javascript

const rippleBtn = document.getElementById('ripple-btn');

rippleBtn.addEventListener('mousedown', function(e) {


const ripple = document.createElement('div');


ripple.classList.add('ripple');


ripple.style.left = e.pageX - rippleBtn.offsetLeft + 'px';


ripple.style.top = e.pageY - rippleBtn.offsetTop + 'px';


rippleBtn.appendChild(ripple);

setTimeout(() => {


ripple.remove();


}, 600);


});

rippleBtn.addEventListener('mouseup', function(e) {


const ripple = document.createElement('div');


ripple.classList.add('ripple');


ripple.style.left = e.pageX - rippleBtn.offsetLeft + 'px';


ripple.style.top = e.pageY - rippleBtn.offsetTop + 'px';


rippleBtn.appendChild(ripple);

setTimeout(() => {


ripple.remove();


}, 600);


});


4. 整合代码

将HTML、CSS和JavaScript代码整合到一起,即可实现按钮长按触发波纹特效的示例。

html

<!DOCTYPE html>


<html lang="zh-CN">


<head>


<meta charset="UTF-8">


<title>按钮长按触发波纹特效示例</title>


<style>


/ 按钮基本样式 /


ripple-btn {


padding: 10px 20px;


border: none;


background-color: 4CAF50;


color: white;


border-radius: 5px;


cursor: pointer;


outline: none;


overflow: hidden;


}

/ 波纹特效样式 /


@keyframes ripple {


0% {


transform: scale(0);


opacity: 1;


}


100% {


transform: scale(4);


opacity: 0;


}


}

.ripple {


position: absolute;


border-radius: 50%;


transform: scale(0);


animation: ripple 0.6s linear;


}


</style>


</head>


<body>

<button id="ripple-btn">点击我</button>

<script>


const rippleBtn = document.getElementById('ripple-btn');

rippleBtn.addEventListener('mousedown', function(e) {


const ripple = document.createElement('div');


ripple.classList.add('ripple');


ripple.style.left = e.pageX - rippleBtn.offsetLeft + 'px';


ripple.style.top = e.pageY - rippleBtn.offsetTop + 'px';


rippleBtn.appendChild(ripple);

setTimeout(() => {


ripple.remove();


}, 600);


});

rippleBtn.addEventListener('mouseup', function(e) {


const ripple = document.createElement('div');


ripple.classList.add('ripple');


ripple.style.left = e.pageX - rippleBtn.offsetLeft + 'px';


ripple.style.top = e.pageY - rippleBtn.offsetTop + 'px';


rippleBtn.appendChild(ripple);

setTimeout(() => {


ripple.remove();


}, 600);


});


</script>

</body>


</html>


总结

本文通过一个按钮长按触发波纹特效的示例,详细讲解了如何使用CSS和JavaScript实现这一效果。在实际开发中,我们可以根据需求调整波纹特效的样式和交互逻辑,以提升用户体验。希望本文能对您有所帮助。