返回
js+css实现点击某图标后先向下蓄力然后往上飞走的特效
2024-12-16
351 0实现点击某个图标后,图标先向下“蓄力”,然后向上“飞走”的动画效果,可以通过 HTML + CSS + JavaScript 配合完成。
思路:使用 HTML 定义图标。使用 CSS 定义图标的样式和动画。使用 JavaScript 添加点击事件,触发动画。
实现步骤
HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Icon Fly Animation</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="icon-wrapper">
<div class="icon" id="fly-icon">🚀</div>
</div>
<script src="script.js"></script>
</body>
</html>
CSS (styles.css)
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background-color: #f0f0f0;
font-family: Arial, sans-serif;
}
.icon-wrapper {
position: relative;
width: 100px;
height: 100px;
}
.icon {
font-size: 50px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
cursor: pointer;
transition: transform 0.3s ease;
}
/* 蓄力向下动画 */
.icon.pressed {
transform: translate(-50%, 20px);
}
/* 飞走动画 */
.icon.fly {
animation: fly-up 1s forwards ease-in;
}
/* 飞走路径 */
@keyframes fly-up {
0% {
transform: translate(-50%, 20px);
opacity: 1;
}
100% {
transform: translate(-50%, -500px) rotate(360deg);
opacity: 0;
}
}
JavaScript (script.js)
document.addEventListener('DOMContentLoaded', () => {
const icon = document.getElementById('fly-icon');
icon.addEventListener('click', () => {
// 添加“蓄力”状态
icon.classList.add('pressed');
// 延迟触发飞走动画
setTimeout(() => {
icon.classList.remove('pressed');
icon.classList.add('fly');
}, 300); // 蓄力时间
});
// 防止动画结束后图标残留,重置样式
icon.addEventListener('animationend', () => {
icon.classList.remove('fly');
});
});
功能说明
点击图标时,图标会向下“蓄力”(通过 transform: translate)。
延时 300ms 后,触发 fly-up 动画,图标快速飞走并旋转消失。
动画结束后,重置图标的状态,避免重复点击异常。
效果预览
将以上代码保存为 index.html,styles.css 和 script.js 后,直接用浏览器打开即可看到图标“蓄力→飞走”的效果。
您可能感兴趣:
网友点评
提交