MediaWiki:Common.js

From Tony Chase
Revision as of 22:59, 4 December 2023 by Archtony (talk | contribs)
Jump to navigation Jump to search

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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

// Wrap the code in a function to avoid polluting the global namespace
function initSnowfall() {
    var container = document.body;
    var numberOfSnowflakes = 50;
    var maxAccumulatedHeight = 200;
    var accumulatedHeight = 0;

    for (var i = 0; i < numberOfSnowflakes; i++) {
        createSnowflake();
    }

    function createSnowflake() {
        var snowflake = document.createElement("div");
        snowflake.className = "snowflake";
        container.appendChild(snowflake);

        var size = Math.random() * 5 + 3;
        snowflake.style.width = size + "px";
        snowflake.style.height = size + "px";

        animateSnowflake(snowflake);
    }

    function animateSnowflake(snowflake) {
        var speed = 1 + Math.random() * 2;

        function moveSnowflake() {
            var currentTop = parseFloat(snowflake.style.top) || 0;
            var newTop = currentTop + speed;

            snowflake.style.top = newTop + "px";

            if (newTop > window.innerHeight) {
                snowflake.style.top = "0px";
                snowflake.style.left = Math.random() * window.innerWidth + "px";
            }

            requestAnimationFrame(moveSnowflake);
        }

        moveSnowflake();
    }
}

// Call the initialization function when the DOM is ready
$(document).ready(initSnowfall);