User:SaoMikoto/common.js: Difference between revisions
From Test Wiki
Content deleted Content added
No edit summary Tag: Reverted |
m // Edit via InPageEdit |
||
| (16 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
function loadMyGadget(gadget) { |
|||
| ⚫ | |||
mw.loader.load(`https://testwiki.wiki/index.php?title=User:SaoMikoto/js/${gadget}.js&action=raw&ctype=text/javascript`); |
|||
} |
|||
// loadMyGadget("InPageEdit"); |
|||
loadMyGadget("Usergroup"); |
|||
loadMyGadget("CleanDeleteReasons"); |
|||
| ⚫ | |||
(window.InPageEdit = window.InPageEdit || {}).myPreference = { |
(window.InPageEdit = window.InPageEdit || {}).myPreference = { |
||
"doNotCollectMyInfo": false, |
"doNotCollectMyInfo": false, |
||
"editMinor": |
"editMinor": true, |
||
"editSummary": "$section // Edit via InPageEdit", |
"editSummary": "$section$oldid // Edit via InPageEdit", |
||
"lockToolBox": true, |
"lockToolBox": true, |
||
"redLinkQuickEdit": false, |
"redLinkQuickEdit": false, |
||
| Line 19: | Line 27: | ||
] |
] |
||
} |
} |
||
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 = ['🍀', '☘️', '🌸', '🌿']; |
|||
| ⚫ | |||
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); |
|||
} |
|||
// InPageEdit NEXT |
|||
// 页面加载完成后启动 |
|||
document.body.append( |
|||
| ⚫ | |||
document.addEventListener('DOMContentLoaded', initFallingElements); |
|||
src: 'https://unpkg.com/@inpageedit/core', |
|||
} else { |
|||
type: 'module', |
|||
initFallingElements(); |
|||
}) |
|||
) |
|||
})(); |
|||