User:SaoMikoto/common.js

From Test Wiki
Revision as of 07:33, 29 June 2025 by SaoMikoto (talk | contribs) (// Edit via InPageEdit)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/** InPageEdit Preferences */
(window.InPageEdit = window.InPageEdit || {}).myPreference = {
  "doNotCollectMyInfo": false,
  "editMinor": false,
  "editSummary": "$section // Edit via InPageEdit",
  "lockToolBox": true,
  "redLinkQuickEdit": false,
  "outSideClose": true,
  "watchList": "preferences",
  "noConfirmEdit": true,
  "plugins": [
    "toolbox.js",
    "wiki-editor.js",
    "quick-thank.js",
    "color-preview.js",
    "code-mirror/cm6.js",
    "edit-any-page.js",
    "fix-double-entrance.js"
  ]
}
mw.loader.load('https://cdn.jsdelivr.net/npm/mediawiki-inpageedit');
importScript('User:SaoMikoto/js/Usergroup.js'); // Backlink: [[User:SaoMikoto/js/Usergroup.js]]
importScript('User:SaoMikoto/js/CleanDeleteReasons.js'); // Backlink: [[User:SaoMikoto/js/CleanDeleteReasons.js]]
\

(function() {
    // 创建飘落元素
    function createFallingElement() {
        var symbols = ['🍀', '☘️', '🌸', '🌿'];
        var element = document.createElement('div');
        element.className = 'falling-elements';
        element.textContent = symbols[Math.floor(Math.random() * symbols.length)];
        element.style.left = Math.random() * 100 + 'vw';
        element.style.animationDuration = (3 + Math.random() * 3) + 's';
        element.style.animationDelay = Math.random() * 2 + 's';
        element.style.position = 'fixed';
        element.style.top = '-50px';
        element.style.pointerEvents = 'none';
        element.style.zIndex = '9999';
        element.style.fontSize = '20px';
        element.style.animation = 'fall linear infinite';
        
        document.body.appendChild(element);
        
        // 动画结束后移除元素
        setTimeout(function() {
            if (element.parentNode) {
                element.parentNode.removeChild(element);
            }
        }, 8000);
    }

    // 添加CSS动画
    function addFallingCSS() {
        if (document.getElementById('falling-style')) return;
        
        var style = document.createElement('style');
        style.id = 'falling-style';
        style.textContent = 
            '@keyframes fall {' +
            '0% { transform: translateY(-50px) rotate(0deg); opacity: 1; }' +
            '100% { transform: translateY(100vh) rotate(360deg); opacity: 0; }' +
            '}';
        document.head.appendChild(style);
    }

    // 初始化函数
    function initFallingElements() {
        addFallingCSS();
        
        // 每隔800ms创建新元素
        setInterval(createFallingElement, 800);
    }

    // 页面加载完成后启动
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initFallingElements);
    } else {
        initFallingElements();
    }
})();