User:SaoMikoto/common.js: Difference between revisions
From Test Wiki
Content deleted Content added
No edit summary |
// Edit via InPageEdit Tag: Reverted |
||
| Line 22: | Line 22: | ||
importScript('User:SaoMikoto/js/Usergroup.js'); // Backlink: [[User:SaoMikoto/js/Usergroup.js]] |
importScript('User:SaoMikoto/js/Usergroup.js'); // Backlink: [[User:SaoMikoto/js/Usergroup.js]] |
||
importScript('User:SaoMikoto/js/CleanDeleteReasons.js'); // Backlink: [[User:SaoMikoto/js/CleanDeleteReasons.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(); |
|||
} |
|||
})(); |
|||