MediaWiki:Common.js:修订间差异

来自Fuckrooms Wiki
无编辑摘要
无编辑摘要
第1行: 第1行:
(function() {
   
    var style = document.createElement('style');
    style.textContent = '.snowflake { position: fixed; color: #fff; z-index: 9999; user-select: none; } @keyframes fall { 0% { transform: translateY(-100vh) rotate(0deg); } 100% { transform: translateY(100vh) rotate(720deg); } }';
    document.head.appendChild(style);


(function(){
   
    var snowflakes = 35,
        minSize = 10,
        maxSize = 20,
        speed = 9,
        characters = ['🍀', '☘️', '🍃'];


window.leaves = window.leaves || [];
   
 
    function createSnow() {
 
        for(var i = 0; i < snowflakes; i++) {
if(!document.getElementById('leafStyle')){
            var flake = document.createElement('div');
    const style = document.createElement('style');
            flake.className = 'snowflake';
    style.id = 'leafStyle';
            flake.textContent = characters[Math.floor(Math.random() * characters.length)];
    style.textContent = `
           
        @keyframes leafFall {
           
             0%{ transform: translate(-20vw, -50px) rotate(0deg) }
             flake.style.left = Math.random() * 100 + '%';
             100%{ transform: translate(20vw, 120vh) rotate(1080deg) }
            flake.style.fontSize = Math.random() * (maxSize - minSize) + minSize + 'px';
        }
             flake.style.animation = 'fall ' + (Math.random() * 5 + speed) + 's linear infinite';
        .leaf {
            flake.style.opacity = Math.random() * 0.5 + 0.5;
             position: fixed;
              
             z-index: 99999;
             document.body.appendChild(flake);
             pointer-events: none;
              
             font-size: 24px;
              
             opacity: 0.8;
             setInterval(function(f) {
             text-shadow: 1px 1px 2px #333;
                f.style.transform = 'translateX(' + (Math.random() * 30 - 15) + 'px)';
             }, 2000, flake);
         }
         }
     `;
     }
    document.head.appendChild(style);
}


function createLeaf(){
    const leaf = document.createElement('div');
    leaf.className = 'leaf';
    leaf.innerHTML = '🍃';
    leaf.style.cssText = `
        left: ${Math.random() * 100}%;
        color: ${['#8BC34A','#4CAF50','#388E3C'][Math.floor(Math.random()*3)]};
        animation: leafFall ${8 + Math.random()*12}s cubic-bezier(0.4,0,0.6,1) infinite;
        filter: hue-rotate(${Math.random()*60}deg);
    `;
    document.body.appendChild(leaf);
    leaves.push(leaf);
}
function startFall(){
    setInterval(() => {
        if(leaves.length < 50) {
            createLeaf();
            if(Math.random() > 0.8) createLeaf();
        }
    }, 800);
   
      
      
     setInterval(() => {
     window.addEventListener('load', function() {
         leaves = leaves.filter(leaf => {
         createSnow();
             if(leaf.getBoundingClientRect().top > window.innerHeight*1.2){
        window.addEventListener('resize', function() {
                 leaf.remove();
             document.querySelectorAll('.snowflake').forEach(function(f) {
                return false;
                 f.style.left = Math.random() * 100 + '%';
             }
             });
            return true;
         });
         });
     }, 5000);
     });
}
 
 
document.addEventListener('visibilitychange', () => {
    if(!document.hidden) startFall();
});
 
 
startFall();
})();
})();

2025年4月14日 (一) 10:42的版本

(function() {
    
    var style = document.createElement('style');
    style.textContent = '.snowflake { position: fixed; color: #fff; z-index: 9999; user-select: none; } @keyframes fall { 0% { transform: translateY(-100vh) rotate(0deg); } 100% { transform: translateY(100vh) rotate(720deg); } }';
    document.head.appendChild(style);

    
    var snowflakes = 35,
        minSize = 10,
        maxSize = 20,
        speed = 9,
        characters = ['🍀', '☘️', '🍃'];

    
    function createSnow() {
        for(var i = 0; i < snowflakes; i++) {
            var flake = document.createElement('div');
            flake.className = 'snowflake';
            flake.textContent = characters[Math.floor(Math.random() * characters.length)];
            
            
            flake.style.left = Math.random() * 100 + '%';
            flake.style.fontSize = Math.random() * (maxSize - minSize) + minSize + 'px';
            flake.style.animation = 'fall ' + (Math.random() * 5 + speed) + 's linear infinite';
            flake.style.opacity = Math.random() * 0.5 + 0.5;
            
            document.body.appendChild(flake);
            
            
            setInterval(function(f) {
                f.style.transform = 'translateX(' + (Math.random() * 30 - 15) + 'px)';
            }, 2000, flake);
        }
    }

    
    window.addEventListener('load', function() {
        createSnow();
        window.addEventListener('resize', function() {
            document.querySelectorAll('.snowflake').forEach(function(f) {
                f.style.left = Math.random() * 100 + '%';
            });
        });
    });
})();