Greasy Fork is available in English.
点击屏幕时显示爱心特效
当前为
// ==UserScript==
// @name 点击屏幕生成爱心特效
// @namespace http://tampermonkey.net/
// @version 1.4
// @description 点击屏幕时显示爱心特效
// @author You
// @match *://*/*
// @grant GM_addStyle
// @license MIT
// ==/UserScript==
(function () {
'use strict';
// 添加爱心动画的样式
GM_addStyle(`
.heart {
position: absolute;
width: 50px; /* 缩小爱心的宽度 */
height: 50px; /* 缩小爱心的高度 */
background-color: red;
transform: rotate(90deg); /* 使爱心竖着 */
animation: heartbeat 1s ease-out forwards;
}
.heart::before,
.heart::after {
content: "";
position: absolute;
width: 50px; /* 同样缩小伪元素的宽度 */
height: 50px; /* 同样缩小伪元素的高度 */
background-color: red;
border-radius: 50%;
}
.heart::before {
left: 0;
top: -40px; /* 调整伪元素位置,确保两半部分合并为一个心形 */
}
.heart::after {
left: 40px;
top: 0;
}
@keyframes heartbeat {
0% {
transform: scale(0) rotate(45deg);
opacity: 1;
}
50% {
transform: scale(1.1) rotate(45deg);
opacity: 0.8;
}
100% {
transform: scale(1) rotate(45deg);
opacity: 0;
}
}
`);
// 确保页面完全加载
window.addEventListener('load', function () {
console.log('页面已加载');
// 监听鼠标点击事件
document.addEventListener('click', function (event) {
// 获取页面滚动的距离
const scrollX = window.scrollX || window.pageXOffset;
const scrollY = window.scrollY || window.pageYOffset;
// 获取页面相对于视口的坐标
const rect = document.body.getBoundingClientRect();
// 计算点击位置相对于页面的坐标
const x = event.clientX + scrollX - rect.left;
const y = event.clientY + scrollY - rect.top;
// 创建爱心元素
const heart = document.createElement('div');
heart.classList.add('heart');
// 设置爱心的位置为点击位置
heart.style.left = `${x - 15}px`; // 调整位置使爱心的中心对准点击点
heart.style.top = `${y - 15}px`;
// 将爱心元素添加到页面中
document.body.appendChild(heart);
// 设置定时器,0.8秒后删除爱心元素
setTimeout(() => {
heart.remove();
}, 800);
});
});
})();