I have these two scripts that both work separately but not together. Obviously, they are virtually identical except the X's to make them different. I thought that would be enough, but clearly it wasn't.
How can I have these two co-exist on the same page? I might even add a third or fourth...just to let you know.
Thank you in advance!
Code:
<script type="text/javascript">
var snowmax=50
var snowcolor=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF")
var snowtype=new Array("Arial","Times")
var snowletter="*"
var sinkspeed=0.4
var snowmaxsize=40
var snowminsize=15
var snowingzone=1
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) {
rand=Math.floor(range*Math.random())
return rand
}
function initsnow() {
if (ie5 || opera) {
marginbottom = document.body.clientHeight
marginright = document.body.clientWidth
}
else if (ns6) {
marginbottom = window.innerHeight
marginright = window.innerWidth
}
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;
snow[i]=document.getElementById("s"+i)
snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)]
snow[i].size=randommaker(snowsizerange)+snowminsize
snow[i].style.fontSize=snow[i].size
snow[i].style.color=snowcolor[randommaker(snowcolor.length)]
snow[i].sink=sinkspeed*snow[i].size/5
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}
snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size)
snow[i].style.left=snow[i].posx
snow[i].style.top=snow[i].posy
}
movesnow()
}
function movesnow() {
for (i=0;i<=snowmax;i++) {
crds[i] += x_mv[i];
snow[i].posy+=snow[i].sink
snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i]);
snow[i].style.top=snow[i].posy
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}
snow[i].posy=0
}
}
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) {
window.onload=initsnow
}
</script>
Code:
<script type="text/javascript">
var snowmaxX=50
var snowcolorX=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF")
var snowtypeX=new Array("Arial","Times")
var snowletterX="-"
var sinkspeedX=0.4
var snowmaxsizeX=40
var snowminsizeX=15
var snowingzoneX=1
var snowX=new Array()
var marginbottomX
var marginrightX
var timerX
var i_snowX=0
var x_mvX=new Array();
var crdsX=new Array();
var lftrghtX=new Array();
var browserinfosX=navigator.userAgent
var ie5X=document.all&&document.getElementById&&!browserinfosX.match(/Opera/)
var ns6X=document.getElementById&&!document.all
var operaX=browserinfosX.match(/Opera/)
var browserokX=ie5X||ns6X||operaX
function randommakerX(range) {
randX=Math.floor(range*Math.random())
return randX
}
function initsnowX() {
if (ie5X || operaX) {
marginbottomX = document.body.clientHeight
marginrightX = document.body.clientWidth
}
else if (ns6X) {
marginbottomX = window.innerHeight
marginrightX = window.innerWidth
}
var snowsizerangeX=snowmaxsizeX-snowminsizeX
for (i=0;i<=snowmaxX;i++) {
crdsX[i] = 0;
lftrghtX[i] = Math.random()*15;
x_mvX[i] = 0.03 + Math.random()/10;
snowX[i]=document.getElementById("w"+i)
snowX[i].style.fontFamily=snowtypeX[randommakerX(snowtypeX.length)]
snowX[i].size=randommakerX(snowsizerangeX)+snowminsizeX
snowX[i].style.fontSize=snowX[i].size
snowX[i].style.color=snowcolorX[randommakerX(snowcolorX.length)]
snowX[i].sink=sinkspeedX*snowX[i].size/5
if (snowingzoneX==1) {snowX[i].posx=randommakerX(marginrightX-snowX[i].size)}
if (snowingzoneX==2) {snowX[i].posx=randommakerX(marginrightX/2-snowX[i].size)}
if (snowingzoneX==3) {snowX[i].posx=randommakerX(marginrightX/2-snowX[i].size)+marginrightX/4}
if (snowingzoneX==4) {snowX[i].posx=randommakerX(marginrightX/2-snowX[i].size)+marginrightX/2}
snowX[i].posy=randommakerX(2*marginbottomX-marginbottomX-2*snowX[i].size)
snowX[i].style.left=snowX[i].posx
snowX[i].style.top=snowX[i].posy
}
movesnowX()
}
function movesnowX() {
for (i=0;i<=snowmaxX;i++) {
crdsX[i] += x_mvX[i];
snowX[i].posy+=snowX[i].sink
snowX[i].style.left=snowX[i].posx+lftrghtX[i]*Math.sin(crdsX[i]);
snowX[i].style.top=snowX[i].posy
if (snowX[i].posy>=marginbottomX-2*snowX[i].size || parseInt(snowX[i].style.left)>(marginrightX-3*lftrghtX[i])){
if (snowingzoneX==1) {snowX[i].posx=randommakerX(marginrightX-snowX[i].size)}
if (snowingzoneX==2) {snowX[i].posx=randommakerX(marginrightX/2-snowX[i].size)}
if (snowingzoneX==3) {snowX[i].posx=randommakerX(marginrightX/2-snowX[i].size)+marginrightX/4}
if (snowingzoneX==4) {snowX[i].posx=randommakerX(marginrightX/2-snowX[i].size)+marginrightX/2}
snowX[i].posy=0
}
}
var timerX=setTimeout("movesnowX()",50)
}
for (i=0;i<=snowmaxX;i++) {
document.write("<span id='w"+i+"' style='position:absolute;top:-"+snowmaxsizeX+"'>"+snowletterX+"</span>")
}
if (browserokX) {
window.onload=initsnowX
}
</script>
And if it's not possible to get these to work simultaneously, is there anyway to combine them? I mean, can more than just one character be randomly dropped from the top of the screen? Thank you!
And if it's not possible to get these to work simultaneously, is there anyway to combine them? I mean, can more than just one character be randomly dropped from the top of the screen? Thank you!
a problem that I see is that you are testing for IE 5 and Netscape 6, which tells me that this is very, very ancient code. Maybe maybe somebody's grandmother out there still has IE 6 but 5? That got superceded in 2001
I'd have a look at your code in a couple of modern browsers before going much further - my versions of Firefox and Chrome don't like it at all. Even IE 8 just makes the snowflakes buzz from side to side on the first line of the screen.
Bookmarks