, etichettato con ID "testo" e allineato al centro (align= "center"), viene associata la classe "testoGiallo" (class="testoGiallo").
La riga document.all.testo. + className = "testoBlu", assegnata all'evento ONMOUSEOVER, che gestisce il passaggio del mouse sull'oggetto, causerà un cambio di stile dell'elemento nel momento in cui il puntatore vi passerà sopra. Difatti, sappiamo già che "document.all" riguarda il dom di Explorer e la sua possibilità di accedere a tutti gli elementi della pagina; "testo" altro non è se non l'ID che abbiamo assegnato all'elemento stesso, mentre className è il parametro che ci permette di modificare o assegnare la classe di stile che viene racchiusa tra i due apici ('testoBlu'). Infine, il tutto termina con un [;] ed è racchiusa da virgolette.
Le funzioni successive ONCLICK, ONDBLCLICK e ONMOUSEOUT definiscono rispettivamente gli eventi successivi al clic, al doppio clic e all'allontanamento del mouse. Riguardo la sintassi dell'evento ONCLICK e ONMOUSEOUT troviamo le voci "fontSize" e "color"; tali proprietà consentono al navigatore di modificare lo stile relativo rispettivamente alla grandezza e al colore del carattere (notate che, in quanto numerico, il valore assegnato al parametro fontSize non va racchiuso fra apici). All'apertura del documento il testo apparirà di colore giallo con una formattazione di default, al passaggio del mouse diventerà blu (come specifica la classe "testoBlu"), al suo allontanarsi assumerà un colore verde , ad un clic si ingrandirà e ad un doppio clic, infine, cambierà ancora colore.
Gli eventi load e unload
Tali eventi interessano il BODY; un esempio è il seguente:
Pagina di Aladdin's Lamp
Un esempio utile con unload potrebbe essere quando l'utente abbandona la pagina senza fare il submit dei dati di una form.
POSIZIONAMENTO DINAMICO
Controllare la posizione assoluta di un elemento è un'operazione analoga a quella già descritta in relazione agli stili dinamici ma in più offre la possibilità di ottenere effetti di spostamento graduale del testo e animazioni di qualsiasi genere. Per fare un esempio, pensiamo di voler muovere l'elemento "giuliaCiarcia", cui abbiamo assegnato la classe "giulia" (vedi il primo esempio pratico di definizione dello stile giulia), di 450 pixel a destra. Basterà cambiare le coordinate che gli abbiamo assegnato al momento della definizione degli stili utilizzando questa sintassi:
Ciao a tutti
Ecco quindi che dai 50 pixel per la proprietà "left" della classe "giulia", tali proprietà passeranno bruscamente a 500 causando lo spostamento immediato dell'oggetto (in questo caso un semplice testo) al passaggio del mouse. Naturalmente, con qualche riga di codice in più è possibile creare un effetto di spostamento graduale, argomento che meglio approfondiremo.
TABELLE
Vedremo ora come sbarazzarci dei frame nella costruzione di una tabella, utilizzando al loro posto una barra di scorrimento; diciamo subito, però, che il codice funzionerà solo con Internet Explorer, mentre con gli altri navigatori la tabella apparirà nella forma consueta. Internet Explorer, come già sappiamo, supporta le proprietà di "overflow" dei css, ovvero i controlli relativi allo scorrimento dei contenuti all'interno di un oggetto. Il loro uso, però, è limitato esclusivamente ai tag DIV o SPAN, che hanno proprietà di spessore e altezza definite e che in tal modo possono forzare lo scorrimento di quei contenuti che occupino più spazio di quello messo a disposizione della tabella.
Iniziamo con il definite lo spessore di ogni colonna della tabella, utilizzando l'elemento
dell'html 4.0; ripetiamo poi lo stesso valore di spessore per le colonne della riga, in modo che tutti i navigatori, anche quelli privi del supporto per l'html possano vedere la tabella. Il codice necessario a questa operazione è, in pratica, il seguente:
Adesso creiamo un'ulteriore tabella, che annideremo utilizzando il tag DIV, in modo che possa gestire l'overflow. Al valore complessivo della somma dei pixel di ogni singola colonna (450), dovremo ora aggiungere altri 30 pixel, per lasciare posto alla barra di scorrimento. Ecco quindi, il perché del valore 480 impostato come spessore del DIV:
Il parametro overflow impostato su auto permetterà al navigatore di visualizzare la barra di scorrimento solo se i contenuti della tabella eccedono dalla sua dimensione; in caso contrario non verrà mostrato nulla.
JAVASCRIPT STYLE SHEETS
Il JSSS (JavaScript Style Sheets) non è uno standard del W3C. E' stato introdotto dalla Netscape con JavaScript e si riferisce sempre ai fogli di stile.
Le differenze tra JSSS e CSS1 sono minime ed esiste la seguente regola: se, ad esempio, in CSS1 si parla di font-style in JSSS si parla di fontStyle, ovvero sparisce il trattino e la lettera successiva si trasforma in maiuscolo.
Il vantaggio di JSSS è che, basandosi su JavaScript, permette facilmente la gestione di eventi e azioni senza l'intervento del server; inoltre JSSS interagisce col browser ottenendo informazioni sul client d'esecuzione. Questo permette all'autore di HTML di avere un maggior controllo sull'esecuzione del suo lavoro sul client.
La base di tutto è l'uso comunque di JavaScript. JavaScript è più un linguaggio di programmazione case-sensitive C-like che un linguaggio per le marcature HTML, ma non può esistere al di fuori di una pagina HTML. In ogni caso è un linguaggio di scripting e non va confuso con il linguaggio Java.
Essendo un linguaggio di scripting, il codice prodotto è soggetto a visione e personalizzazione da parte dell'utente, per cui va impiegato laddove ciòè utile.
JavaScript è nato in un momento di massimo splendore dell'object oriented e fa uso di tale terminologia, che adesso vedremo brevemente.
L'OGGETTO
L'oggetto di JavaScript fa riferimento ad un oggetto del mondo reale che si rappresenta e possiede delle proprietà (stato) e può fare delle azioni (metodi).
Un oggetto si descrive con una funzione JavaScript, che ne definisce le proprietà e le azioni. Un oggetto, in generale, viene prima definito come tipo, poi viene definita una variabile di quel tipo ed istanziata. Per aprire un commento si usa . Ad esempio definiamo l'oggetto casa di colore giallo e poi istanziamolo.
LA PROPRIETÀ
La proprietà è uno stato dell'oggetto, una caratteristica, un attributo che assume un valore. Ad esempio la casa è gialla, la porta è chiusa. La proprietà di un oggetto può far riferimento a qualunque tipo di variabile JavaScript. Per accedere alla proprietà si usa il nome dell'oggetto, nell'esempio casa.colore .
IL METODO
Il metodo è una funzione che agisce su uno stato dell'oggetto. Aggiungiamo, ad esempio, un metodo che cambia lo stato della porta della casa.
function apriporta( onOff ) {
if( onOff == "on" )
{this.porta_aperta = true;}
else
{this.porta_aperta = false;}
}
OGGETTI JSSS
Esistono in JSSS tre altri oggetti: tags (per le marcature), classes (per le classi), ids (per gli identificativi).
Tags
Con tags si può puntare ad una marcatura H1 ad esempio. Si può gerarchicamente puntare a partire da document, cioè:
document.tags.nomeMarcatura
ma si può anche omettere document.
Classes
Le classes sono un raffinamento delle marcature, ad esempio la marcatura
.left vista nelle lezioni precedenti. Il puntamento da adottare è
document.classes.nomeClasse[.nomeMarcatura].
In DHTML CSS è possibile, difatti, definire una classe stile, ad esempio è possibile definire:
P.left {font-family:garamond;
font-size:12pt;
font-style:normal;
line-height:11pt;
text-align:left}
Per individuare questo stile, si farà riferimento a:
bla bla
o in alternativa
document.classes.left
Ids
L'ids individua il nome dell'id. Ad esempio se si è usato
. È possibile arrivarci con document.ids.Ed.
CSS1 IN JSSS
Vediamo di tradurre una pagina dallo standardCSS1 in JSSS: non è difficile, usando ciò che abbiamo visto finora, ma abbastanza lungo.
Supponiamo il seguente esempio in CSS1 :
Prova dei fogli di stile CSS1
etc....
Lo possiamotradurre nel seguente modo in JSSS:
Prova dei fogli di stile JSSS