Ciao a tutti!
è un po di tempo che pensavo di scrivere una pillolina su una raccolta di script realizzati da me.
Entrando su questo forum trovo spesso delle domande ripetitive alle quali talvolta corrispondono delle risposte vaghe.
Gli obiettivi di questa pillola sono sia aiutare i nuovi webmaster a realizzare qualcosa di semplice e utile, ma anche
stimolare i più esperti a migliorare questi script. Spero vogliate scusarmi se magari divago un po' fra gli argomenti,
ma mi sembrava poco fare una pillola su un solo script.
Fatte queste premesse possiamo iniziare con il primo.
__________________________________________________ ___________________________
1) Funzione per numeri random
compatibile con: Internet Explorer, Netscape, Opera
Questa funzione è strettamente legata alla pillola di Reale_Augello.
- Descrizione
restituisce un numero pseudocasuale compreso fra gli estremi specificati. Se si specifica solo un estremo per default
il valore di ritorno sarà compreso tra zero e l'estremo specificato.
- Funzione
Questo script va copiato e incollato nell'HEAD della pagina, oppure incluso in un file esterno e richiamato dalla pagina.
codice:
<script>
function random(inf,sup) {
if(sup==undefined) sup=0;
ext = sup - inf;
rand = Math.round(Math.random()*ext);
rand += inf;
return rand;
}
</script>
- Sintassi di chiamata
random(inferiore [, superiore])
inferiore (obbligatorio): valore numerico. indica l'estremo dal quale partire. Se non è indicato l'estremo superiore
il numero casuale sarà compreso tra 0 e inferiore.
- Esempio: Immagini casuali
Immaginiamo di avere delle immagini numerate da 7 a 15 in questo modo: img7.jpg, img8.jpg, ... , img15.jpg.
vogliamo che al centro della pagina venga caricata un'immagine di queste in maniera casuale:
codice:
<script>
var numimg = random(7,15);
/* chiama la funzione random specificando gli estremi 7 e 15 e mette il valore di ritorno in numimg */
document.writeln("<img src=\"img"+numimg+".jpg\">");
</script>
facile no?
__________________________________________________ ___________________________
2) Funzione per la conversione di base
compatibile con: Internet Explorer, Netscape, Opera
In javascript (che io sappia) non esiste una funzione per convertire un numero da una base ad un'altra base.
Vedremo un applicazione di questa funzione più avanti.
- Descrizione
Restituisce una stringa corrispondente al numero convertito da base_partenza a base_arrivo.
Sia base_partenza che base_arrivo devono essere compresi fra 2 e 36, inclusi.
- Funzione
Questo script va copiato e incollato nell'HEAD della pagina, oppure incluso in un file esterno e richiamato dalla pagina.
codice:
<script>
function baseconv(str_conv, base1, base2) {
if(base1==base2) return str_conv;
return baseconv1(baseconv2(str_conv,base1),base2);
}
function baseconv1(str_conv, base) {
valarray = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if(str_conv >= base) return baseconv1(Math.floor(str_conv / base),base)+valarray.charAt(str_conv % base);
else return valarray.charAt(str_conv);
}
function baseconv2(str_conv, base) {
valarray = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var ris=0;
for(i=0; i<str_conv.length; i++) ris += valarray.indexOf(str_conv.charAt(i).toUpperCase())*Math.pow(base,str_conv.length-1-i);
return ris;
}
</script>
- Sintassi di chiamata
baseconv("numero", base_partenza, base_arrivo)
numero (obbligatorio): il numero da convertire. Deve essere compreso fra apici (singoli o doppi).
base_partenza (obbligatorio): la base del numero specificato.
base_arrivo (obbligatorio): la base in cui si vuole convertire il numero.
- Esempio
codice:
<script>
alert("255 da base 10 a base 16= "+baseconv("255",10,16));
alert("FF da base 16 a base 10= "+baseconv("FF",16,10));
</script>
__________________________________________________ ___________________________
3) Slideshow di Immagini
compatibile con: Internet Explorer, Netscape
Utile script per gestire un'immagine che cambia dinamicamente ogni tot secondi specificati
- Funzione
Basta copiare e incollare questo script nel punto della pagina dove andrà l'immagine.
La variabile secondi indica il numero di secondi che intercorrono tra un'immagine e l'altra.
Per inserire una nuova immagine basta aggiungere una riga analoga alle altre dove è indicato il percorso delle immagini.
codice:
<script>
var foto = new Array;
var secondi = 5;
foto[foto.length]= "immagine.jpg";
foto[foto.length]= "prova.jpg";
foto[foto.length]= "imggif.gif";
foto[foto.length]= "logo.jpg";
var numft = 1;
document.writeln("<img name=\"imgmain\" src=\""+foto[numft-1]+"\" onload=\"setTimeout('slideshow()',"+secondi+"000)\">");
function slideshow() {
if(numft==foto.length) numft=0;
numft++;
document.imgmain.src = foto[numft-1];
}
</script>
è più facile di quanto sembri... buon divertimento
__________________________________________________ ___________________________
4) Rollover senza attesa
compatibile con: Internet Explorer, Netscape
Ecco una soluzione per risolvere il problema dell'attesa di un rollover su un'immagine. Infatti quando si fa un rollover
(a meno che non sia fatto con flash) dobbiamo aspettare il caricamento dell'immagine e nonostante tutto l'effetto non è
quello desiderato, proprio perchè sono passati diversi secondi da quando eravamo andati col puntatore sopra l'immagine!
La mia può essere una soluzione valida, perchè al passaggio del mouse non chiede il caricamento dell'immagine, ma
solamente la visualizzazione.
- Funzione
Questo script va copiato e incollato nell'HEAD della pagina, oppure incluso in un file esterno e richiamato dalla pagina.
codice:
<script>
var style = "<STYLE TYPE=\"text/css\">.hide {visibility: hidden;position:absolute;top:0;left:0;}"+
".show {visibility: visible;border: none;}</STYLE>";
document.writeln(style);
var idimg=0;
function rollover(imgout,imgon) {
idimg++;
idimg="img"+idimg;
var imag = "<img src=\""+imgout+"\" class=\"show\" id=\""+idimg+"_out\""+
"onmouseover=\"changeimg("+idimg+"_out,"+idimg+"_on)\"><img src=\""+imgon+"\""+
"class=\"hide\" id=\""+idimg+"_on\" onmouseout =\"changeimg("+idimg+"_on,"+idimg+"_out)\">";
document.write(imag);
}
function changeimg(img1,img2) {
img1.className="hide";
img2.className="show";
}
</script>
- Sintassi di chiamata
rollover("percorso_immagine1" , "percorso_immagine2");
percorso_immagine1 (obbligatorio): percorso dell'immagine di default
percorso_immagine2 (obbligatorio): percorso dell'immagine di rollover
- Esempio: link e rollover
<script>rollover("immagini/html_it.gif","immagini/html_it_up.gif");</script>
__________________________________________________ ___________________________
5) Sfondo Pagina casuale
compatibile con: Internet Explorer, Netscape, Opera
Anche questo script è strettamente legato alla pillola di Reale_Augello.
--- # Colore di sfondo casuale # ---
Applicheremo in questo script le precedenti funzioni di random e di conversione di base.
- Descrizione
Questo script determina un colore di sfondo del tutto casuale ad ogni apertura ed aggiornamento della pagina. Ad ogni
colore di sfondo viene stabilito il colore del testo di tutta la pagina, a meno che non dipenda da uno style.
- Funzione
Questo script va copiato e incollato nell'HEAD della pagina, oppure incluso in un file esterno e richiamato dalla pagina.
codice:
<script>
function baseconv(str_conv, base1, base2) {
if(base1==base2) return str_conv;
return baseconv1(baseconv2(str_conv,base1),base2);
}
function baseconv1(str_conv, base) {
valarray = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if(str_conv >= base) return baseconv1(Math.floor(str_conv / base),base)+valarray.charAt(str_conv % base);
else return valarray.charAt(str_conv);
}
function baseconv2(str_conv, base) {
valarray = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var ris=0;
for(i=0; i<str_conv.length; i++) ris += valarray.indexOf(str_conv.charAt(i).toUpperCase())*Math.pow(base,str_conv.length-1-i);
return ris;
}
function hex(strhex) {
return baseconv(""+strhex,10,16);
}
function random(inf,sup) {
if(sup==undefined) sup=0;
ext = sup - inf;
rand = Math.round(Math.random()*ext);
rand += inf;
return rand;
}
function bgrandom() {
r= hex(random(255));
g= hex(random(255));
b= hex(random(255));
if(r.length==1) r = "0"+r;
if(g.length==1) g = "0"+g;
if(b.length==1) b = "0"+b;
document.body.style.backgroundColor = "#"+r+g+b;
document.body.style.color = baseconv(r+g+b,16,10)<8000000? "#FFFFFF":"#000000";
window.status="BGCOLOR = #"+r+g+b;
}
window.onload=bgrandom;
</script>
--- # Immagine di sfondo casuale # ---
- Descrizione
Data una lista di immagini lo script ne sceglie una in maniera casuale e la imposta come sfondo della pagina.
L'operazione viene effettuata ad ogni caricamento e aggiornamento di pagina.
- Funzione
Questo script va copiato e incollato nell'HEAD della pagina, oppure incluso in un file esterno e richiamato dalla pagina.
codice:
<script>
function random(inf,sup) {
if(sup==undefined) sup=0;
ext = sup - inf;
rand = Math.round(Math.random()*ext);
rand += inf;
return rand;
}
function sfrandom() {
var sfondo = new Array;
sfondo[sfondo.length]= "immagine.jpg";
sfondo[sfondo.length]= "prova.jpg";
sfondo[sfondo.length]= "imggif.gif";
sfondo[sfondo.length]= "logo.jpg";
num_img=random(sfondo.length-1);
document.body.background=sfondo[num_img];
}
window.onload=sfrandom;
</script>