Skip to main content
Amp BlggerByte

follow us

How to Make the Snow Falling Effect on a Blog or Website - Hello friends This is Christmas time!!! Guys, if you want to add snow falling effect to cheer up your blogs in this month. Bloggerbyte shares an article about how to Make Snow Fall Effect on Blog or website to decorate your website with a snowfall effect this winter? Well, here is a small tutorial on how to add a snowfall effect to your website and make your website beautiful.

For how to install it, you can follow the tutorial. 

First of all, you have to choose which one syle you want to apply and follow.

Style 1:-
Look for the <body> tag and paste the code below after the tag. Or you can put it before the </body> tag.

<script src="" type="text/javascript"></script>
Style 2:-
Look for the <body> tag and paste the code below after the tag. Or you can put it before the </body> tag.

#snowflakeContainer {
position: absolute;
left: 0px;
top: 0px;
.snowflake {
padding-left: 15px;
font-family: Cambria, Georgia, serif;
font-size: 14px;
line-height: 24px;
position: fixed;
color: #FFFFFF;
user-select: none;
z-index: 1000;
-moz-user-select: none;
-ms-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
-webkit-touch-callout: none;
.snowflake:hover {
cursor: default;
<div id='snowflakeContainer'>
<p class='snowflake'>*</p>
<script>// The star of every good animation
var requestAnimationFrame = window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
var transforms = [&quot;transform&quot;,
var transformProperty = getSupportedPropertyName(transforms);
// Array to store our Snowflake objects
var snowflakes = [];
// Global variables to store our browser&#39;s window size
var browserWidth;
var browserHeight;
// Specify the number of snowflakes you want visible
var numberOfSnowflakes = 50;
// Flag to reset the position of the snowflakes
var resetPosition = false;
// It all starts here...
function setup() {
window.addEventListener(&quot;DOMContentLoaded&quot;, generateSnowflakes, false);
window.addEventListener(&quot;resize&quot;, setResetFlag, false);
// Vendor prefix management
function getSupportedPropertyName(properties) {
for (var i = 0; i &lt; properties.length; i++) {
if (typeof[properties[i]] != &quot;undefined&quot;) {
return properties[i];
return null;
// Constructor for our Snowflake object
function Snowflake(element, radius, speed, xPos, yPos) {
// set initial snowflake properties
this.element = element;
this.radius = radius;
this.speed = speed;
this.xPos = xPos;
this.yPos = yPos;
// declare variables used for snowflake&#39;s motion
this.counter = 0;
this.sign = Math.random() &lt; 0.5 ? 1 : -1;
// setting an initial opacity and size for our snowflake = .1 + Math.random(); = 12 + Math.random() * 50 + &quot;px&quot;;
// The function responsible for actually moving our snowflake
Snowflake.prototype.update = function () {
// using some trigonometry to determine our x and y position
this.counter += this.speed / 5000;
this.xPos += this.sign * this.speed * Math.cos(this.counter) / 40;
this.yPos += Math.sin(this.counter) / 40 + this.speed / 30;
// setting our snowflake&#39;s position
setTranslate3DTransform(this.element, Math.round(this.xPos), Math.round(this.yPos));
// if snowflake goes below the browser window, move it back to the top
if (this.yPos &gt; browserHeight) {
this.yPos = -50;
// A performant way to set your snowflake&#39;s position
function setTranslate3DTransform(element, xPosition, yPosition) {
var val = &quot;translate3d(&quot; + xPosition + &quot;px, &quot; + yPosition + &quot;px&quot; + &quot;, 0)&quot;;[transformProperty] = val;
// The function responsible for creating the snowflake
function generateSnowflakes() {
// get our snowflake element from the DOM and store it
var originalSnowflake = document.querySelector(&quot;.snowflake&quot;);
// access our snowflake element&#39;s parent container
var snowflakeContainer = originalSnowflake.parentNode;
// get our browser&#39;s size
browserWidth = document.documentElement.clientWidth;
browserHeight = document.documentElement.clientHeight;
// create each individual snowflake
for (var i = 0; i &lt; numberOfSnowflakes; i++) {
// clone our original snowflake and add it to snowflakeContainer
var snowflakeCopy = originalSnowflake.cloneNode(true);
// set our snowflake&#39;s initial position and related properties
var initialXPos = getPosition(50, browserWidth);
var initialYPos = getPosition(50, browserHeight);
var speed = 5+Math.random()*40;
var radius = 4+Math.random()*10;
// create our Snowflake object
var snowflakeObject = new Snowflake(snowflakeCopy,
// remove the original snowflake because we no longer need it visible
// call the moveSnowflakes function every 30 milliseconds
// Responsible for moving each snowflake by calling its update function
function moveSnowflakes() {
for (var i = 0; i &lt; snowflakes.length; i++) {
var snowflake = snowflakes[i];
// Reset the position of all the snowflakes to a new value
if (resetPosition) {
browserWidth = document.documentElement.clientWidth;
browserHeight = document.documentElement.clientHeight;
for (var i = 0; i &lt; snowflakes.length; i++) {
var snowflake = snowflakes[i];
snowflake.xPos = getPosition(50, browserWidth);
snowflake.yPos = getPosition(50, browserHeight);
resetPosition = false;
// This function returns a number between (maximum - offset) and (maximum + offset)
function getPosition(offset, size) {
return Math.round(-1*offset + Math.random() * (size+2*offset));
// Trigger a reset of all the snowflakes&#39; positions
function setResetFlag(e) {
resetPosition = true;
Thus my article on How to Make the How to Make the Snow Falling Effect on a Blog or Website, Hopefully, the above article is useful for you. Thank you and good luck

Note- Use snow falling effect when you are using dark theme or accessible dark mode on your website else on white background snow falling effect doesn't appear. 
If you want to be buddy donors please contact admin via Whatsapp .Proceeds from donations will be used to extend the domain Thank you

You Might Also Like :

Comment Policy : Please write your comments that match the topic of this page's posts. Comments that contain links will not be displayed until they are approved.
Open Comments