|
|
(10 intermediate revisions by one other user not shown) |
Line 1: |
Line 1: |
| /* 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);
| |