View Full Version : Forum Display Enhancements - Classic Style Snow Fall

10 Oct 2013, 05:16
This will give your site a classic holiday snow fall without any images, uploading any files, or adding any server load to your site.

It is also customize-able to fit your needs. :)

Classic Snow Fall

In your footer at the very end, below


And below any other scripts you may already have there. Add the following

<SCRIPT type="text/javascript">
Classic Snow Fall - Java Script

// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax=35

// Set the colors for the snow. Add as many colors as you like
var snowcolor=new Array("#aaaacc","#ddddff","#ccccdd","#f3f3f3","#f0ffff")

// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowtype=new Array("Times","Arial","Times","Verdana")

// Set the letter that creates your snowflake (recommended: * )
var snowletter="*"

// Set the speed of sinking (recommended values range from 0.3 to 2)
var sinkspeed=0.6

// Set the maximum-size of your snowflakes
var snowmaxsize=30

// Set the minimal-size of your snowflakes
var snowminsize=8

// Set the snowing-zone
// Set 1 for all-over-snowing, set 2 for left-side-snowing
// Set 3 for center-snowing, set 4 for right-side-snowing
var snowingzone=1


// Do not edit below this line
var snow=new Array()
var marginbottom
var marginright
var timer
var i_snow=0
var x_mv=new Array();
var crds=new Array();
var lftrght=new Array();
var browserinfos=navigator.userAgent
var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/)
var ns6=document.getElementById&&!document.all
var opera=browserinfos.match(/Opera/)
var browserok=ie5||ns6||opera

function randommaker(range) {
return rand

function initsnow() {
if (ie5 || opera) {
marginbottom = document.body.scrollHeight
marginright = document.body.clientWidth-15
else if (ns6) {
marginbottom = document.body.scrollHeight
marginright = window.innerWidth-15
var snowsizerange=snowmaxsize-snowminsize
for (i=0;i<=snowmax;i++) {
crds[i] = 0;
lftrght[i] = Math.random()*15;
x_mv[i] = 0.03 + Math.random()/10;
if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}

function movesnow() {
for (i=0;i<=snowmax;i++) {
crds[i] += x_mv[i];

if (snow[i].posy>=marginbottom-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){
if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
var timer=setTimeout("movesnow()",50)

for (i=0;i<=snowmax;i++) {
document.write("<span id='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"'>"+snowletter+"</span>")
if (browserok) {


Save and reload
In another browser tab or windows, review the results.
If all is well as it should be, you're done.

Please mark as installed :o

Update 12-23-2011

Not a code update


If you know your community has a lot of mobile web users, such as Apple iPod, setting the snow fall value count to 20 works best. (original value is 35).

// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax=20

See the original from vBulletin 3.x, 4.x, 5.x, and my other remaining releases http://www.vbulletin.org/forum/member.php?u=404458

Don't forget to mark install and review this. :)

If you're tired of vBulletin you should upgrade to Woltlab Burning Board http://www.woltlab.com

10 Oct 2013, 05:17
Good-bye vBulletin.org :(

This will be my last release here as OldSchoolDSL. Even as I type this, the licenses associated with this account is pending transfer (I gave it away for free & I believe they sold it).

I still recall the original vBulletin 1.0 and even the short lived vBulletin Lite (yes, there use to be a free version, didn't you know). I remember all the little debates I had with some of you & even the friendly chats. A few of you are no longer with us (some moved on, some passed away).

I wish those of you who will be staying all the very best. And I want to thank the staff here who some of you started our as voluntary, but later became employed; all the very best as well. I hope the work you continue to do here is appreciated. I appreciated it.

I also want to wish all the developers who remain the best of luck. None of you ever truly get the credit you deserve for all the effort and hard work you place into your free creativity. Some of you I would say even deserve a good paycheck from IB for the effort and work you have contributed (doubt they'll ever recognize that, but know that I and others did).

Thanks for the laughs, the good times, the lessons, the debates, and the warm wishes I received.

I regret nothing.

Best wishes and all the best of luck,

Adam Howard

28 Aug 2014, 17:23
Tested and working on the current vBulletin 5.

So for those of you looking forward to the holiday season coming up... This still works :)

26 Sep 2014, 09:16
Will this work on vBulletin 4?

26 Sep 2014, 10:28
Use this version, http://www.vbulletin.org/forum/showthread.php?t=275416

17 Jul 2017, 16:19
No longer supported as I no longer use vBulletin having moved to both WoltLab Burning Board and Invision Power Board.

I have 100% permission to reuse, modify, improve, enhance, and redistribute this code as freeware to anyone, everyone, and everywhere.

Good luck :)

20 Jul 2017, 06:05
I hope you are doing great wherever you are Adam. Wishing you the best in life for all that you did for the community here. Thanks and have a wonderful time.

Brandon Sheley
20 Jul 2017, 08:05
Thanks for sharing the code DSL, have a great day :)