- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Vincolare Effetto neve (script) su una tabella, possibile?
-
Vincolare Effetto neve (script) su una tabella, possibile?
ho questo effetto neve... su file "snow.js" :
//Snow - http://www.btinternet.com/~kurt.grigg/javascript if ((document.getElementById) && window.addEventListener || window.attachEvent){ (function(){ //Configure here. var num = 30; //Number of flakes var timer = 30; //setTimeout speed. Varies on different comps var enableinNS6 = 1 //Enable script in NS6/Mozilla? Snow animation could be slow in those browsers. (1=yes, 0=no). //End. var y = []; var x = []; var fall = []; var theFlakes = []; var sfs = []; var step = []; var currStep = []; var h,w,r; var d = document; var pix = "px"; var domWw = (typeof window.innerWidth == "number"); var domSy = (typeof window.pageYOffset == "number"); var idx = d.getElementsByTagName('div').length; if (d.documentElement.style && typeof d.documentElement.style.MozOpacity == "string") num = 12; for (i = 0; i < num; i++){ sfs* = Math.round(1 + Math.random() * 1); document.write('<div id="flake'+(idx+i)+'" style="position:absolute;top:0px;left:0px;width:' +sfs*+'px;height:'+sfs*+'px;background-color:#ffffff;font-size:'+sfs*+'px"><\/div>'); currStep* = 0; fall* = (sfs* == 1)? Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2); step* = (sfs* == 1)? 0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05 ; } if (domWw) r = window; else{ if (d.documentElement && typeof d.documentElement.clientWidth == "number" && d.documentElement.clientWidth != 0) r = d.documentElement; else{ if (d.body && typeof d.body.clientWidth == "number") r = d.body; } } function winsize(){ var oh,sy,ow,sx,rh,rw; if (domWw){ if (d.documentElement && d.defaultView && typeof d.defaultView.scrollMaxY == "number"){ oh = d.documentElement.offsetHeight; sy = d.defaultView.scrollMaxY; ow = d.documentElement.offsetWidth; sx = d.defaultView.scrollMaxX; rh = oh-sy; rw = ow-sx; } else{ rh = r.innerHeight; rw = r.innerWidth; } h = rh - 2; w = rw - 2; } else{ h = r.clientHeight - 2; w = r.clientWidth - 2; } } function scrl(yx){ var y,x; if (domSy){ y = r.pageYOffset; x = r.pageXOffset; } else{ y = r.scrollTop; x = r.scrollLeft; } return (yx == 0)?y:x; } function snow(){ var dy,dx; for (i = 0; i < num; i++){ dy = fall*; dx = fall* * Math.cos(currStep*); y*+=dy; x*+=dx; if (x* >= w || y* >= h){ y* = -10; x* = Math.round(Math.random() * w); fall* = (sfs* == 1)? Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2); step* = (sfs* == 1)? 0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05 ; } theFlakes*.top = y* + scrl(0) + pix; theFlakes*.left = x* + scrl(1) + pix; currStep*+=step*; } setTimeout(snow,timer); } function init(){ winsize(); for (i = 0; i < num; i++){ theFlakes* = document.getElementById("flake"+(idx+i)).style; y* = Math.round(Math.random()*h); x* = Math.round(Math.random()*w); } snow(); } if (window.addEventListener){ window.addEventListener("resize",winsize,false); window.addEventListener("load",init,false); } else if (window.attachEvent){ window.attachEvent("onresize",winsize); window.attachEvent("onload",init); } })(); }//End.
RICHIAMATO DALLA PAGINA html:
[html]
<script type="text/javascript" src="http://sito.org/_altervista_ht/snow.js"></script>[/html]tuttavia dopo aver applicato il codice, l'effetto neve ce l'ho sulla pagina INTERA mentre io lo vorrei solo limitato ad una tabella, è fattibile
esempio tabella sul quale vorrei applicare l'effetto neve :
[html]<table width="450" height="200" border="1">
<tr>
<td> </td>
</tr>
</table>[/html]
-
per farla più breve.... volevo sapere se si può DELIMITARE l'effetto neve solo all'interno di una tabella anzichè a tutta la pagina html....
-
Ciao, per come funziona lo script mi pare difficile riuscire a confinarlo in una tabella.
Si tratta quasi di rifarlo.
Prova qualche altro script simile, magari più flessibile.
-
Ciao Claudio... hai per caso qualche link in merito.... o come bisogna modificare tale codice script? Grazie.
-
@fasa said:
Ciao Claudio... hai per caso qualche link in merito.... o come bisogna modificare tale codice script? Grazie.
Niente che funzioni bene con tutti i browser....
E' un problema trovarne di crossbrowser. Mi spiace.Tranne qualche script pronto disperso chissà dove, penso dovresti farlo praticamente da zero....
-
Claudio, basta che mi funzioni con Explorer 6 e 7 e Mozzilla - Firefox...
-
p.s. avrei trovato questo codice.... o similare per bloccare lo script... forse da modificare....
<script language="text/javascript">
function immagine_variabile(){
document.getElementById('http://sito/_altervista_ht/snow.js').style.display="block">);
}
</script>
-
@fasa said:
p.s. avrei trovato questo codice.... o similare per bloccare lo script... forse da modificare....
Prova e facci sapere....
-
Salve! Non credo di essere molto esperto in campo ma avevo pensato che potresti fare in questo modo:
- Crei una nuova pagina html e la chiami "tabella.html" dove scrivi ciò che dovra contenere la tabella e importi lo script in javascript delal neve
- Poi sulla pagina html dove si dovrà visualizzare la tabella inserisci un iframe riferito alla pagina precedente tipo questo:
<iframe width="x" height="x marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="no" scrolling="no" target="_self" src="tabella.html"></iframe>
e il gioco è fatto... è un metodo poco elegante ma funziona