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

Pagina: 1
Acties:
  • 51 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>



Kreeg de volgende tips van wat mede tweakers, helaas zat ik in et verkeerde forum |:(
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:
code:

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
Je kunt het ook 'toggelen':

--------------------------------------------------------------------------------
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 )
je kan gewoon clearTimeout('snow') in een functie stoppen. De naam van dat 'clear' moet j ff opzoeken.
Hoe pas je zoiets alleen toe? Me know-how van java is zeer klein, tis meer een gunst of iemand er ff naar zou willen kijken. O-)

Signature?


  • Willem
  • Registratie: Februari 2001
  • Laatst online: 22:35
Tsja, ik zou lekker de maker van het script even bellen/faxen/mailen.
Als je 't zelf niet hebt geschreven is dat het handigst.

Als je de FAQ had gelezen -met name het "Kan iemand even...?"- dan had je geweten dat dit eigenlijk niet relevant is om te vragen. Verder is dit geen Java, maar Javascript, iets compleet anders en hier is genoeg over te vinden om een oplossing te zoeken voor je probleem.

Succes :)

Motor (of auto) onderhoud bijhouden


Dit topic is gesloten.