li trovate anche nel materiale del corso di web design

Strumenti per lo sviluppo


Librerie Javascript
−
jQuery
−
script.aculo.us
Componenti aggiuntivi per i browser firefox e chrome
−
Firebug
−
Web developer
Alcune utility on-the-fly

Generatore di sorgente di codice da mettere in una pagina
html:
−

http://quickhighlighter.com/
Sito in cui si possono provare al volo i comandi appresi, siano
essi CSS HTML o JAVASCRIPT:
−
http://www.w3schools.com/
Le Estensioni dei browser



Sono degli utility non indipendenti che si integrano con il browser
per cui sono fatti (e.s Firefox e Chrome su tutti)
Aggiungono funzioni specifiche che il browser non possiede
–
Scarico video in streaming > DownloaderHelper
–
Cancellazione della cache del browser >ClearCache
–
Sincronizzazione dei bookmarks > Xmarks
–
Analisi e debug delle pagine web > Firebug / Web developer
Svantaggi:
–
Rendono più lento il caricamento del browser
–
Spesso non sono compatibili con le nuove versioni dei
browser
Firebug

http://getfirebug.com

Potente estensione OPEN SOURCE che permette di :
−
Fare il debug delle pagine web anche passo a passo
−
Monitorare gli errori
−
Modificare il contenuto Css, html, DOM, javascript, xml..
della pagina
−
Monitorare il caricamento delle pagine con la funzione NET,
che illustra la durata dei caricamento dei singoli pezzi (swf,
jpg...) e lo script utilizzato
−
Cercare un elemento digitandone il nome
−
Analizzare al volo un qualsiasi elemento della pagina dal
menù del tasto destro del mouse
Web developer


https://addons.mozilla.org/it/firefox/addon/60/
Web developer è una toolbar che si aggiunge alla barra degli
strumenti del browser e che nasconde una lunga serie di comandi
e funzioni di analisi delle pagine web. Le modifiche saranno
applicate a tutte le pagine del browser.

Si integra ai comandi anche al tasto destro del mouse

Permette di
−
attivare e disattivare proprietà della pagina
−
visualizzare ogni singolo file o gruppo di file dalla pagina su
una nuova finestra
−
Modificare e controllare i dati personali
La libreria jQuery




Si tratta di una libreria javascript cross-browser, free e open
source .
Serve per velocizzare e facilitare la scrittura di script clientside:
−
Selezionare e modificare elementi del DOM
−
Manipolare CSS
−
Creare animazioni ed effetti
−
Gestire Eventi
È probabilmente il framework più utilizzato, per esempio da
Google, DELL, digg, NBC, CBS, mozilla.prg, wordpress
La documentazione per le API: http://api.jquery.com/
La libreria jQuery

jQuery è formato da un unico file javaScript, contenente tutto
il pacchetto. Deve essere incluso nella pagina html in uso nel
solito modo, dentro il tag HEAD:
<script type="text/javascript" src="jQuery.js"></script>


Per alterare gli elementi delle pagine si fa riferimento all'oggetto
principale, di tipo jQuery, tramite il carattere “$”
Es.: fare un fade out ai DIV del documento:
$("div").fadeOut()
La libreria jQuery

Jquery gestisce l'evento ready, da utilizzare al posto del solito
onload dell'oggetto window
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function () {
$("p").text("The DOM is now loaded and can be manipulated.");
});
</script>
</head>
<body>
<p>Not loaded yet.</p>
</body>
jQuery come selettore

$("#header") >

$("h3") > prende tutti gli elementi di tipo H3

$("div#content .photo") > restituisce un array degli
restituisce l'elemento con id="header", come il
comando getElementById
elementi con class="photo" dentro <div id="content">

$("ul li") > restituisce un array degli elementi <li>
<ul>
dentro tutti gli
jQuery come selettore

$("ul li:first") >prende solo il primo elemento <li> degli <ul>

$("ul li:nth-child(2)") >prende solo il secondo elemento <li>
degli <ul>

$("ul li:nth-child(even)") > prende solo i figli di posizione
pari degli <ul>
jQuery come modificatore

$("div h1").addClass("colore_rosso") > attribuisce la
proprietà “colore_rosso” all'elemento h1 di tutti i div

$("div h1:first").html(“Testo nuovo”) > Sostituisce al
primo elemento H1 dei div il testo “Testo nuovo”

$("p").append(" Testo aggiunto") > aggiunge alla fine
del paragrafo la stringa di testo “ Testo aggiunto”
Altri esempi di uso di $

$(document.createElement('ul')) >
crea un elemento di
tipo ul

$('a.subject').click (function () {.... }); > gestisce gli
eventi

$("div")fadeIn(200) > animazione di fadeIn sui div

$.browser.version > rileva la versione (numero) del browser
(es. 1.9.2.3)

$.browser.mozilla > restituisce TRUE se si è dentro firefox
Scorciatoie con jQuery


Jquery però permette di ridurre notevolmente il codice.
Es.: la tabella a caselle zebrate. Invece di colorare una a una le caselle
basta richiamare il comando:
$("table tr:nth-child(even)").addClass("zebra");


Il comando passerà a ogni casella (“tr”) di posizione pari (EVEN) della tabella la
nuova proprietà di stile che abbiamo definito come “zebra”:
<style type="text/css"> tr.zebra { background-color: gold; color: #ffffff;
</style>
}
Scorciatoie con jQuery


E per quanto riguarda gli eventi del
mouse, invece di passare tutti gli
elementi della tabella con un ciclo
for e attribuire la modifica dello stile
nel ciclo, si può fare così:
Ovvero al mouseOver su ogni elemento
tr si attiva la proprietà css
”css_rollover”, che viene tolta al rollOut.
$("tr").mouseover(function() {
$(this).addClass(“css_rollover”);
}).mouseout(function(){
$(this).removeClass("css_rollover");
});
VERSIONE ALTERNATIVA:
$("tr").hover( function () {
$(this).addClass(“css_rollover”);
},
function () {
$(this).removeClass("css_rollover");
}
);
Animazioni con jQuery

Se ho un div con un rettangolo
posso, per esempio, modificarne le
dimensioni in x e y, decidendo la
durata dell'animazione e aggiungerci
funzioni in chiusura:
$("div:first").animate({
height: "20px",
width: "10px",
}, 1000, function() {
alert('done!');
});

Esistono anche dei plug-in aggiuntivi per
decidere il tipo di transizione
dell'animazione come questo
http://gsgd.co.uk/sandbox/jquery/easing/
Break – pausina veloce....
Form con jQuery

jQuery gestisce una moltitudine di tipi
di eventi, per esempio il “focus” su un
campo di testo:
$("input").focus(function () {
<!-- codice da eseguire al focus-->
});

E la pressione del campo di testo di
tipo “submit”
$("form").submit(function() {
<!-- codice da eseguire alla pressione del
tasto-->
}
Pannelli a scomparsa

Un comando interessante per le animazioni è il toggleClass, che fa
scorrere in altezza un qualsiasi elemento, facendolo scomparire e
riapparire:
$("div").slideToggle("slow");

L'elemento animato può contenere altri elementi che verranno di conseguenza
nascosti/visualizzati, creando un interessante effetto a scomparsa
Alcuni tutorial interessanti
•
Gallery scorrevole con testo
–
•
http://sixrevisions.com/tutorials/javascript_tutorial/create-a-slick-and-acces
Menu fatto di immagini che scorrono al movimento del mouse:
–
http://valums.com/wp-content/uploads/2009/02/menu/final.htm
La libreria script.aculo.us

La libreria è formata da una serie di file javaScript. Devono
essere inclusi nella pagina html in uso nel solito modo, dentro
il tag HEAD:
<script src="scr/prototype.js" type="text/javascript"></script>
<script src="src/scriptaculous.js" type="text/javascript"></script>

L'oggetto principale, che serve per elaborare il documento
html, fa riferimento sempre al carattere “$”
La libreria script.aculo.us

Un esempio di effetto di fade out (scomparsa):
new Effect.Fade('id_elemento_scelto');
oppure
$('id_elemento_scelto').fade();

Un esempio di effetto di fade in con una durata di 3 secondi e
opacità finale di .7 (70%):
$('id_elemento_scelto').appear( duration: 3.0, to:0.7 });
La libreria script.aculo.us

L'esempio su un div:
<body>
<div id="fade_demo" onmouseout="$(this).appear({ duration: 2, to: 0.7 });" onmouseover="$
(this).fade({ duration: 2, to: 0.3});" style="display:false; width:80px; height:80px;
background:#c2defb; border:1px solid #333;">
</div>
</body>
Uso di più librerie:
script.aculo.us + jQuery



Le librerie sono ovviamente compatibili e possono essere
usate assieme.
Ma come fa il browser a capire a quale quando usare
script.acuolo.us e quando jQuery se entrambi usano l'oggetto
$? Semplice: non lo sa.
La tecnica richiede di usare al posto della $ di jQuery proprio
l'oggetto jQuery. In alternativa si può rinominare l'oggetto $
con uno nuovo. Per esempio:
var $j = jQuery;
$j(“div”).fadeOut();
Link di spiegazione per jQuery
http://docs.jquery.com/Using_jQuery_with_Other_Libraries
Riassumendo..
•
Fate un po' di prove con le libreria jQuery
partendo da cose piccole e poi cercate di
integrarla con le vostre pagine.
•
Consultate le api che sono ricche di
informazioni ed esempi: http://api.jquery.com/
•
Estensioni firebug e web developer:
scaricatele e provatele con le vostre prove.
•
Si avanza tempo o siete curiosi date un
occhio anche alla libreria script.aculo.us
The end.
•
Grazie della partecipazione, esercitatevi a
casa. La ripetizione fa il maestro. ^_^