di: Alessandro Fulciniti 05 Novembre 2004
L'esempio che stiamo per presentare è ispirato da un modulo di registrazione on-line che ho usato un po' di tempo fa. Provate anche solo a riempire il primo campo: noterete che compare una pop-in, ossia del testo che, visibile quando l'utente inserisce i dati, lo guida nella compilazione.
L'implementazione è abbastanza semplice. Se osservate il codice HTML noterete che non ci sono div aggiuntivi per le pop-in. Il testo viene reperito dall'attributo title di ciascun fieldset: in sostanza, un form con informazioni correlate raggruppate in fieldset separati, ciascuno con il suo titolo, sono le due cose essenziali nell'HTML affinchè lo script funzioni. Quest'ultimo si occupa di:
Il principio è molto simile a quello dei tooltip con CSS e Javascript (cfr. Articolo: Tooltip con Javascript e CSS):una combinazione di title, Javascript e CSS per avere un effetto dinamico. Vediamo lo script, che è linkato nell'HTML attraverso una semplice istruzione:
<script type="text/Javascript" src="popin.js"></script>
Ed ecco il contenuto del file "popin.js":
window.onload=function(){
if(document.getElementsByTagName && document.createElement)
Popin();
}
function Popin(){
var fields=document.getElementsByTagName("fieldset");
for(var i=0;i<fields.length;i++){
var el=fields[i];
var d=document.createElement("div");
d.className="popin";
var s=document.createElement("strong");
s.appendChild(document.createTextNode("Passo " + (i+1) + ": "));
d.appendChild(s);
d.appendChild(document.createTextNode(el.title)));
el.title="";
el.parentNode.insertBefore(d,el);
var inputs=el.getElementsByTagName("*");
for(var j=0;j<inputs.length;j++){
inputs[j].ref=d;
inputs[j].onfocus=function(){this.ref.style.display="block"};
inputs[j].onblur=function(){this.ref.style.display="none"};
}
}
}
Come si può notare, lo script è sorprendentemente breve e usa estensivamente il DOM.
Vediamo i requisiti per poter utilizzare lo script in una qualsiasi pagina HTML con un form:
Nel CSS quindi, affinchè le cose funzionino, è necessario predisporre una classe aggiuntiva:
div.popin{display: none;float: right;width: 120px;margin-top: 30px;
padding: 4px;border: 1px solid #6888D0;background-color: #C8D4F8}
Ovviamente, nei vostri progetti potrete divertirvi a modificare dimensioni, colori, bordi e font della pop-in.
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida jQuery UICreare siti ricchi e dinamici con jQuery UI, il progetto ufficiale... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |