Skip to content

Enhance Your Waterscape

Refresh Your Pond or Lake
Free Shipping

On All Orders in the Lower 48 States

Order Tracking

Available with every order

3 Day Price Match Guarantee

For Most Products

Have Questions? Call us!

855-964-4205

We're here to help you

Need assistance with your pond or lake? Our team is dedicated to providing the help and advice you need for a thriving pond or lake. Feel free to call us at 855-964-4205, email us at help@outdoorsupplypro.com or live chat with us using the icon at the bottom right of the screen!
Get in touch today
script> document.addEventListener('DOMContentLoaded', function () { const canvas = document.getElementById('snowCanvas'); const ctx = canvas.getContext('2d'); // Resize canvas to match window size function resizeCanvas() { canvas.width = window.innerWidth; canvas.height = window.innerHeight; } resizeCanvas(); window.addEventListener('resize', resizeCanvas); // Create snowflake properties const numFlakes = 100; const flakes = []; for (let i = 0; i < numFlakes; i++) { flakes.push({ x: Math.random() * canvas.width, // X position y: Math.random() * canvas.height, // Y position radius: Math.random() * 3 + 1, // Size of the snowflake speed: Math.random() * 1 + 0.5, // Falling speed drift: Math.random() * 2 - 1 // Drift left/right }); } // Animate the snowflakes function drawSnow() { ctx.clearRect(0, 0, canvas.width, canvas.height); flakes.forEach(flake => { ctx.beginPath(); ctx.arc(flake.x, flake.y, flake.radius, 0, Math.PI * 2); ctx.fillStyle = 'rgba(255, 255, 255, 0.8)'; ctx.fill(); // Update snowflake position flake.y += flake.speed; flake.x += flake.drift; // Reset position if it falls out of view if (flake.y > canvas.height) { flake.y = 0; flake.x = Math.random() * canvas.width; } if (flake.x > canvas.width || flake.x < 0) { flake.x = Math.random() * canvas.width; } }); requestAnimationFrame(drawSnow); } drawSnow(); });