Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

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();
Cookies help us deliver our services. By using our services, you agree to our use of cookies.