User:超级大冰猫/common.js
From Rizline中文维基
More actions
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.
console.log("i am running!")
const pointLevelDiv = document.getElementById("points-level")
const pointLevelA = pointLevelDiv.getElementsByTagName("a")[0]
pointLevelA.innerText = "Infinity"
const honorificLevelDiv = document.getElementById("honorific-level")
const honorificLevelA = honorificLevelDiv.getElementsByTagName("a")[0]
honorificLevelA.innerText = "(超级无敌巨大水母霸王)"
const profileToggleButtonDiv = document.getElementById("profile-toggle-button")
const profileToggleButtonA = profileToggleButtonDiv.getElementsByTagName("a")[0]
profileToggleButtonA.innerText = "不使用社交用户页"
// 定义函数
function initCitizenFloat() {
const container = document.querySelector('.citizen-body-container');
if (!container) {
console.error('未找到 .citizen-body-container 元素');
return;
}
if (container.dataset.floatActive) {
console.log('该容器已应用浮动效果');
return;
}
container.dataset.floatActive = 'true';
// 注入样式
const style = document.createElement('style');
style.textContent = `
@keyframes citizen-float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.citizen-floater {
animation: citizen-float var(--cf-dur, 4s) ease-in-out infinite;
animation-delay: var(--cf-del, 0s);
will-change: transform;
display: inline-block; /* 确保行内元素也能浮动 */
}
`;
document.head.appendChild(style);
// 仅遍历该容器内的所有后代元素
const elements = container.querySelectorAll('*');
elements.forEach(el => {
// 排除功能性标签
if (el.matches('script, style, svg, canvas, noscript, iframe')) return;
// 获取计算样式,只处理可见的块级/行内块级元素
const computed = window.getComputedStyle(el);
const display = computed.display;
// 对块级元素和行内块级元素应用效果,避免破坏纯行内文本流
if (['block', 'inline-block', 'flex', 'grid', 'list-item', 'table', 'table-cell'].includes(display)) {
// 生成随机参数
const duration = (Math.random() * 4 + 2).toFixed(2) + 's'; // 2-6秒
const delay = (Math.random() * -5).toFixed(2) + 's'; // -5到0秒延迟
el.classList.add('citizen-floater');
el.style.setProperty('--cf-dur', duration);
el.style.setProperty('--cf-del', delay);
}
});
console.log(`✅ 已为 ${container.className} 内的 ${elements.length} 个元素应用随机浮动`);
}
// 手动执行
initCitizenFloat();