Greasy Fork

Greasy Fork is available in English.

红色爱心飘落特效

为任意网页添加红色爱心飘落效果

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         红色爱心飘落特效
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  为任意网页添加红色爱心飘落效果
// @author       Your name
// @match        *://*/*
// @exclude      *://cuntou0906.github.io/*
// @grant        GM_addStyle
// ==/UserScript==

(function() {
    'use strict';

    // 添加样式
    GM_addStyle(`
        .heart {
            color: #ff0000;
            position: fixed;
            top: -20px;
            font-size: 20px;
            text-shadow: 0 0 3px rgba(255, 0, 0, 0.3);
            pointer-events: none;
            z-index: 999999;
            animation: heartFall linear infinite;
        }
        @keyframes heartFall {
            0% {
                transform: translateY(-20px) rotate(0deg);
            }
            100% {
                transform: translateY(100vh) rotate(360deg);
            }
        }
    `);

    // 创建爱心元素
    function createHeart() {
        const heart = document.createElement('div');
        heart.className = 'heart';
        heart.textContent = '❤';
        heart.style.left = Math.random() * 100 + 'vw';
        heart.style.animationDuration = (Math.random() * 3 + 2) + 's'; // 2-5秒

        // 添加到页面
        document.body.appendChild(heart);

        // 动画结束后移除元素
        heart.addEventListener('animationend', () => heart.remove());
    }

    // 控制爱心创建
    function startHeartFall() {
        // 初始创建一批爱心
        for(let i = 0; i < 8; i++) {  // 减少初始爱心数量从15到8
            setTimeout(() => createHeart(), i * 300);  // 增加间隔时间从200ms到300ms
        }

        // 持续创建新的爱心
        setInterval(() => {
            const hearts = document.getElementsByClassName('heart');
            if(hearts.length < 15) {  // 减少最大数量限制从30到15
                createHeart();
            }
        }, 500);  // 增加创建间隔从200ms到500ms
    }

    // 确保在页面加载完成后运行
    if(document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', startHeartFall);
    } else {
        startHeartFall();
    }
})();