当前位置:网站首页>按钮点击动画
按钮点击动画
2022-08-09 02:30:00 【JiuMeilove】
效果示例
代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>按钮点击动画1</title>
<style> @import url('https://fonts.googleapis.com/css2?family=Pacifico&display=swap'); html, body {
width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background-color: #1f1f1f; font-family: 'Pacifico', serif; overflow: hidden; } span {
position: relative; display: flex; align-items: center; justify-content: center; flex-grow: 1; } span::after {
content: attr(data-text); position: absolute; background-color: #FC4F4F; border-radius: 10px; padding: 6px 20px; font-size: 22px; cursor: pointer; color: #fff; user-select: none; transition: transform 100ms ease-in; } span:active::after {
transform: scale(0.9); } @keyframes pumping {
50% {
transform: scale(0.95); } } .shape {
--size: 8px; position: absolute; top: calc(50% - var(--size)); left: calc(50% - var(--size)); width: calc(var(--size) * 2); height: calc(var(--size) * 2); animation: popup var(--d) cubic-bezier(.08, .56, .53, .98) forwards; } .heart {
--size: 6px; background-color: var(--c); } .heart::before, .heart::after {
content: ""; position: absolute; width: 100%; height: 100%; background-color: var(--c); border-radius: 50%; } .heart::before {
left: -50%; } .heart::after {
top: -50%; } @keyframes popup {
0% {
opacity: 0; } 60% {
opacity: 1; } 100% {
opacity: 0; transform: translate(var(--x), var(--y)) rotate(var(--r)); } } </style>
</head>
<body>
<span data-text="Click Me"></span>
<script> const colors = ['#FC4F4F', '#FFBC80', '#FF9F45', '#F76E11'] // const shapes = ['square', 'circle', 'triangle', 'heart'] const shapes = ['heart'] const randomIntBetween = (min, max) => {
return Math.floor(Math.random() * (max - min + 1) + min) } class Particle {
constructor({
x, y, rotation, shape, color, size, duration, parent }) {
this.x = x this.y = y this.parent = parent this.rotation = rotation this.shape = shape this.color = color this.size = size this.duration = duration this.children = document.createElement('div') } draw() {
this.children.style.setProperty('--x', this.x + 'px') this.children.style.setProperty('--y', this.y + 'px') this.children.style.setProperty('--r', this.rotation + 'deg') this.children.style.setProperty('--c', this.color) this.children.style.setProperty('--size', this.size + 'px') this.children.style.setProperty('--d', this.duration + 'ms') this.children.className = `shape ${
this.shape}` this.parent.append(this.children) } animate() {
this.draw() const timer = setTimeout(() => {
this.parent.removeChild(this.children) clearTimeout(timer) }, this.duration) } } function animateParticles({
total }) {
for (let i = 0; i < total; i++) {
const particle = new Particle({
x: randomIntBetween(-200, 200), y: randomIntBetween(-100, -300), rotation: randomIntBetween(-360 * 5, 360 * 5), shape: shapes[randomIntBetween(0, shapes.length - 1)], color: colors[randomIntBetween(0, colors.length - 1)], size: randomIntBetween(4, 7), duration: randomIntBetween(400, 800), parent }) particle.animate() } } const parent = document.querySelector('span') parent.addEventListener("touchstart", () => {
}, false); parent.addEventListener('click', e => animateParticles({
total: 40 }) ) </script>
</body>
</html>
边栏推荐
- 使网络安全威胁风险更高和成本更高的五个趋势
- 【剑指offer65】不适用加减乘除做加法
- 2022 Eye Care Products Exhibition, Beijing Eye Health Exhibition, Ophthalmology Exhibition, Myopia Correction Equipment Exhibition
- 2.1-----27. Remove elements
- MT4/MQ4L入门到精通EA教程第二课-MQL语言常用函数(二)-账户信息常用功能函数
- 如何保护智能家居避免黑客攻击
- 【云计算】XaaS最全介绍(按24字母合集):AaaS、BaaS、CaaS、DaaS、EaaS、FaaS、GaaS、HaaS、IDaaS…
- LintCode 146. 大小写转换 II
- Z-Game on grid(牛客多校赛)
- ROS2错误:不支持OpenGL 1.5 GLRenderSystem:: ci initialiseContext在C: \ \ ws \构建……
猜你喜欢
随机推荐
The most fierce "employee" in history, madly complaining about the billionaire boss Xiao Zha: So rich, he always wears the same clothes!
【HNUMSC】C language second lecture
gpio子系统和pinctrl子系统(中)
Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules
使网络安全威胁风险更高和成本更高的五个趋势
MT4/MQL4入门到精通EA课程第二课-常用的功能函数
物联网未来:未来五年的预期
危化企业双预防机制数字化建设工作要求
Open3D 计算点云的均值(质心)与协方差
mysql 5.7 入坑
opencv在图像上长按左键画矩形单击右键清除
eladmin container deployment super detailed process
C#计算两个时间相差多少天、时、分、秒
MT4/MQL4 Getting Started to Mastering EA Tutorial Lesson 1 - MQL Language Common Functions (1) OrderSend() Function
腾讯地图获取定位
数仓第一篇:基础架构
【云计算】XaaS最全介绍(按24字母合集):AaaS、BaaS、CaaS、DaaS、EaaS、FaaS、GaaS、HaaS、IDaaS…
2020.10.13 Development log
不会吧!不会吧!居然还有人不知道重绘以及回流
笔算开2次方根、3次方根详细教程









