[JS] Hoe kan je dit snowsciript aan en uit zetten?

Pagina: 1
Acties:
  • 57 views sinds 30-01-2008

  • Mesh
  • Registratie: Januari 2001
  • Laatst online: 21-08-2024

Mesh

Use the FAQing SEARCH!

Topicstarter
Gebruik nu een snowscript op me website, alleen hebben een paar members gevraagd of er een mogelijkheid is om het script aan en uit te zetten.

Ik draai Vbulletin en heb dus het volgende snowscript in me header staan, nu vroeg ik me af of het mogelijk was om door wijze van een knop of link het script uit te zetten.

Hier is het script, heb er een beetje in geklooid om de sneeuwvlokken wat groter te maken, voor de rest staat alles nog zoals et hoort:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<script language="JavaScript">
<!--
function tmt_winControl(id,c){ 
    var d=eval(id)==null||eval(id+".closed");
    if(!d){eval(id+"."+c);}
}
//-->
</script>
</head>
<!-- use below as your body tag -->
<body bgcolor=#000000 onLoad="snow()" link="#FFFF00">
<!-- paste script in body -->
<p>
  <script language="JavaScript">
<!-- Snow Script by kurt.grigg@virgin.net
N = 30; 
Y = new Array();
X = new Array();
S = new Array();
A = new Array();
B = new Array();
M = new Array();
V = (document.layers)?1:0;

iH=(document.layers)?window.innerHeight:window.document.body.clientHeight;
iW=(document.layers)?window.innerWidth:window.document.body.clientWidth;
for (i=0; i < N; i++){                                                                
 Y[i]=Math.round(Math.random()*iH);
 X[i]=Math.round(Math.random()*iW);
 S[i]=Math.round(Math.random()*6+2);
 A[i]=0;
 B[i]=Math.random()*0.1+0.1;
 M[i]=Math.round(Math.random()*4+3);
}
if (V){
for (i = 0; i < N; i++)
{document.write("<LAYER NAME='sn"+i+"' LEFT=0 TOP=0 BGCOLOR='#FFFFF0' 

CLIP='0,0,"+M[i]+","+M[i]+"'></LAYER>")}
}
else{
document.write('<div style="position:absolute;top:0px;left:0px">');
document.write('<div style="position:relative">');
for (i = 0; i < N; i++)
{document.write('<div id="si" 

style="position:absolute;top:0;left:0;width:'+M[i]+';height:'+M[i]+';background:#fffff0;font

-size:'+M[i]+'"></div>')}
document.write('</div></div>');
}
function snow(){
var H=(document.layers)?window.innerHeight:window.document.body.clientHeight;
var W=(document.layers)?window.innerWidth:window.document.body.clientWidth;
var T=(document.layers)?window.pageYOffset:document.body.scrollTop;
var L=(document.layers)?window.pageXOffset:document.body.scrollLeft;
for (i=0; i < N; i++){
sy=S[i]*Math.sin(90*Math.PI/180);
sx=S[i]*Math.cos(A[i]);
Y[i]+=sy;
X[i]+=sx; 
if (Y[i] > H){
Y[i]=-10;
X[i]=Math.round(Math.random()*W);
M[i]=Math.round(Math.random()*1+1);
S[i]=Math.round(Math.random()*5+2);
}
if (V){document.layers['sn'+i].left=X[i];document.layers['sn'+i].top=Y[i]+T}
else{si[i].style.pixelLeft=X[i];si[i].style.pixelTop=Y[i]+T} 
A[i]+=B[i];
}
setTimeout('snow()',10);
}
//-->
  </script>


Me know-how van java is zeer klein, tis meer een gunst of iemand er ff naar zou willen kijken. O-)

Signature?


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 15:48

Gerco

Professional Newbie

Je zal een knop op je site moeten zetten die onClick een variabele (bOn ofzo) op false zet en dan in je snowscript dit veranderen:
JavaScript:
1
if(bOn) setTimeout('snow()',10);

Verdere uitwerking laat ik aan de lezer over... (btw, op deze manier is uit ook ECHT uit, zonder F5 krijg je het niet meer aan. En deze oplossing werkt alleen voor 1 pagina, dus als je op een linkje klikt, is het weer aan)

Om dit goed te laten werken zul je niet alleen dit javascript moeten modden, maar ook vBulletin, dus echt een simpel klusje is dit bepaald niet.

Bovendien is dit javascript en geen Java, zit 1 van mn favo talen eens niet zo te beledigen :+

[ Voor 24% gewijzigd door Gerco op 23-12-2002 09:48 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Je kunt het ook 'toggelen':

code:
1
2
3
4
5
6
7
function snowOn() {
    snowTime = setTimeout('snow()',10);
}

function snowOff() {
   if (snowTime) clearTimeout (snowTime);
}


oid

(maar is inderdaad JS en dus W&G.. al zijn we niet zo happig op het aanpassen van andermans scripts dus geef ik hem daar geen lang leven :))

[ Voor 28% gewijzigd door Bosmonster op 23-12-2002 09:55 ]


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

je kan gewoon clearTimeout('snow') in een functie stoppen. De naam van dat 'clear' moet j ff opzoeken.

Klaar voor een nieuwe uitdaging.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Mjah zie de bosmonster :)

Dit topic is gesloten.