JSFiddle - React, Tailwind, and code Playground
by spmbt
HTML
<button>toggle falling</button>
CSS
body{overflow-y: hidden}
JavaScript
// Snowmaker Copyright (c) 2003 Peter Gehrig. All rights reserved.
// Modified (c) 2005, Igor Svetlov, Nickname: 12345c
var snowmax = 25; // Set the number of snowflakes (more than 30 - 40 not recommended)
var snowcolor = ["#c4bbcc","#ccddFF","#ccd6DD"];
// Set the colors for the snow. Add as many colors as you like
var snowtype = ["Arial Black","Arial Narrow","Times","Comic Sans MS"];
// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowletter = ["*","❅","❆",'✺'];
// Set the letter that creates your snowflake (recommended:*)
var sinkspeed = 0.6; // Set the speed of sinking (recommended values range from 0.3 to 2)
var snowmaxsize = 45; // Set the maximal-size of your snowflaxes
var snowminsize = 22; // Set the minimal-size of your snowflaxes
var snowingleft = 0.1; //левая граница присутствия снега
var snowingwidth = 0.8; //ширина присутствия снега в окне
var opac = 1; //непрозрачность снега (0.0-1.0), при 1.0 в 2 раза быстрее работает.
var stepTime = 120; //шаг покадровой анимации (мсек). При менее 100 сильно нагружает процессор
var snow = [];
var marginbottom;
var marginright;
var x_mv = []; var crds = []; var lftrght = [];
var browserinfos = navigator.userAgent;
d = document;
var isOpera = self.opera;
var ie5 = d.all&&d.getElementById&&!isOpera;
var ns6 = d.getElementById&&!d.all;
var opera9 = isOpera && parseFloat(navigator.appVersion) >=9;
var browserok = ie5||ns6||isOpera;
var ww = 0;
var timer = 0;
var snowmaxOld = 0;
function createSnow(){
for(i =0; i < Math.max(snowmax, snowmaxOld); i++){ if(i < snowmax){
var o = d.createElement('SPAN');
if(d.getElementById('s'+ i)){ snowZone.replaceChild(o, d.getElementById('s'+ i));}
else{snowZone.appendChild(o);}
o.setAttribute('id','s'+ i);
o.style.position ='absolute';
o.style.top = -snowmaxsize +'px';
if(ns6) o.style.MozOpacity = opac;
if(opera9) o.style.opacity = opac;
if(ie5){ o.style.filter ='alpha'; o.filters[0].opacity = opac...