p - Gabriele Ruscelli

Transcript

p - Gabriele Ruscelli
jQuery
come utilizzare javascript senza troppi problemi
Queste slide
Queste slides fanno parte del corso “Web Design II & HTML II”.
Il sito del corso, con il materiale completo, si trova in http://www.gabrieleruscelli.com .
Data la rapida evoluzione della rete, il corso viene aggiornato ogni anno.
Il presente materiale è pubblicato con licenza Creative Commons “Attribuzione - Non
commerciale - Condividi allo stesso modo – 3.0” (http://creativecommons.org/licenses/
by-nc-sa/3.0/it/deed.it ):
La licenza non si estende alle immagini provenienti da altre fonti e alle screen shots, i cui
diritti restano in capo ai rispettivi proprietari, che, ove possibile, sono stati indicati.
L’autore si scusa per eventuali omissioni, e resta a disposizione per correggerle.
Introduzione
jQuery è una libreria di funzioni (un cosiddetto software framework) javascript, cross-browser per le applicazioni web, che si propone come obiettivo
quello di semplificare la programmazione lato client delle pagine HTML.
wikipedia
Grazie a jQuery è possibile scrivere poche righe
di codice per richiamare tantissime funzioni javascript.
documentazione
per iniziare....
per i designer..
http://jquery.com
http://jqueryui.com
http://www.jqueryrain.com
alcuni esempi sono stati presi da questi libri
manuale completo
perchè jQuery?
-manipolazione di HTML/DOM e CSS
– metodi per eventi HTML
– effetti e animazioni
– supporto a programmazione AJAX
-è diffuso, testato e manutenuto
– open source
– compatto (meno di 100kb, se compresso)
– può essere esteso con una serie di plugin di vario genere
perchè jQuery?
Differenze
codice scritto con javascript
codice scritto con jQuery
screen presi da wikipedia
jQuery - primi passi
1- scaricare da http://jquery.com l’ultimo file aggiornato jquery
2- fare una cartellina nuova chiamandola js
3- inserire nell’head un link che richiama il file scaricato
<script type=”text/javascript” src=”js/jquery-1.7.1.min.js”>
</script>
4- iniziare a scrivere codice javascript nel proprio file HTML
HTML e jQuery
È possibile implementare codice jQuery in diversi parti:
-All’interno di head nella pagina HTML
-All’interno di body a fine pagina HTML prima della chiusura
del tag </body>
-Creando un file nuovo *.js e richiamarlo nella head, ES:
<head>
<script src=”js/jquery.js” type=”text/javascript”></script>
<script src=”js/script_mio.js” type=”text/javascript”></script>
</head>
jQuery struttura
Parte iniziale, richiama la funzione jQuery
Selettore. In questo
caso sta puntando ad
un tag HTML “a”
chiudi la seconda
funzione
$(document).ready(function() {
$(“a”).click(function(event) { alert(“ciao!”);
event.preventDefault();
});
});
Istruzione legata al selettore “a”.
L’istruzione si chiama: click.
Se click “a” allora crea una funzione nuova.
chiudi la prima
funzione
La funzione nuova è
un alert.
L’alert comunicherà:
ciao!
NB. se questo pezzo di codice viene inserito dentro head o dentro
body deve essere all’interno del tag <script></script>.
selettori
Per poter collegare gli script a degli elementi presenti nella pagina
HTML si necessita di un selettore e/o un filtro. Questo permette di far
agire jQuery a un determinato box, tag etc.. etc..
La sintassi di un selettore è determinata dalla struttura HTML e dai sui
tag, classi o id; saranno proprio questi che ci serviranno per collegare
i nostri script.
Selettori classici
Selettori multipli
Selettori discendenti
Selettori gerarchici
$(‘p’)
$(‘.classe’)
$(‘#id’)
$(‘ul li a’)
$(‘.classe1 .colore’)
$(‘#id #id_piccolo’)
$(‘p, h1, a’)
$(‘.classe1, .classe2, .classe3’)
$(‘#id, #id2’)
$(‘p > a’)
$(‘.classe1 + .classe2’)
$(‘#id ~ #id2’)
Filtri
I filtri permettono un ulteriore “ricerca e filtraggio” di qualsiasi elemento dentro un documento HTML, tuttavia sono più lenti rispetto ai selettori primari.
alcuni filtri:
$(‘:button’)
$(‘:checkbox’)
$(‘:input’)
$(‘:animated’)
$(‘:checked’)
$(‘:focus’)
$(‘:first-child’)
$(‘:last-child’)
$(‘:odd’)
Uso
$(‘:button’)
$(‘*:button’)
$(‘#id’).filter(‘:button‘)
$(‘form input:button‘)
Primi script 1
impostare una semplice pagina html con un paragrafo
<body>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</body>
lo script che scriveremo servirà a contare le parole del paragrafo
$(document).ready(function() {
var count=$(“p”).text().split(‘’).length;
alert(“numero parole:”+ count);
});
Primi script 2
Inseriamo un tag “a” nel codice a questo gli assoceremo una funzione
<body>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<a href=”#”>clicca</a>
</body>
Cliccando “a” si scatenerà la funzione alert con scritto “hello world!”
$(document).ready(function() {
$(“a”).click(function(event) {
$(“p”).addClass(“evidenziato”);
event.preventDefault();
});
});
addClass 3
Creiamo una classe nei css “colore” e la associamo al paragrafo.
.colore{background-color: fuchsia;}
<p class=”colore”>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua.</p>
<a href=”#”>clicca</a>
seguendo la stessa logica dell’esempio precedente associamo la
nostra classe al click
$(document).ready(function() {
$(“a”).click(function(event) {
$(“p”).addClass(“colore”);
event.preventDefault();
});
});
});
removeClass 4
Creiamo una classe nei css “sottolineato” e la associamo al paragrafo.
.sottolineato{text-decoration: underline;}
<p class=”colore sottolineato”>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua.</p>
<a href=”#”>clicca</a>
Al contrario di addClass questa proprietà si occupa di cancellare una
classe già esistente. In questo caso “sottolineato” associata precendentemente.
$(document).ready(function() {
$(“a”).click(function(event) {
$(“p”) .removeClass(“sottolineato”)
event.preventDefault();
});
});
toggleClass 5
per far si che quando c’è si cancella e quando non c’è si attiva....
$(document).ready(function() {
$(‘a’).click(function(event) {
$(‘p’).toggleClass(“colore”)
event.preventDefault();
});
});
animazioni jQuery 1
jQuery offre diversi una serie di animazioni predefinite che possono
essere manipolate per creare animazioni complesse.
NB. attenzione toggle è diversa dalla funzione toggleClass
$(document).ready(function() {
$(‘a’).click(function(event) {
$(‘p’).toggle(‘slow’);
event.preventDefault();
});
});
animazioni jQuery 2
Le principali funzioni di animazioni si suddividono in 3 macro gruppi:
Mostrare o Nascondere: .hide() .show() .toogle()
Scorrimento: .slideDown() .slideUp() .slideToggle()
Dissolvenza: .fadeIn() .fadeOut() .fadeTo() .fadeToggle()
animazioni jQuery 3
Ognuni funzione può ammettere dei valori per settare l’animazione.
sintassi per tutte le funzioni
.hide(duration [, callback])
.hide([duration] [, easing] [, callback])
sintassi solo per queste funzioni
.toggle(showOrHide)
.fadeTo(duration, opacity [, easing] [,callback])
Duration: durata dell’animazione (fast, slow, millisecondi)
Callback: serve per concatenare le animazioni seguendo il DOM.
Easing: curva dell’animazione https://jqueryui.com/easing/
showOrHide: non considera lo stato attuale di visualizzazione
dell’elemento, se è visibile si può nascondere e viceversa.
Opacity: valore di opacità (da 0 a 1)
animazioni jQuery 4
È possibile implementare animazioni diverse da quelle offerte dalle
funzionalità di base precedentemente descritte. Per fare ciò si utilizza
la funzione .animate() integrandola con parametri CSS.
NB non tutte le proprietà CSS sono animabili.
.animate(properties [, duration] [,easing] [,complete])
Complete: termine dell’animazione
$(document).ready(function(){
$(‘#animate1’).click(function(){
$(‘#content’).animate(
{‘border-width’: 5,
height: 10});
});
$(‘#animate2’).click(function(){
$(‘#content’).animate(
{width: 10},
‘slow’);
});
});
Esercizi 1
Creare una barra che informa gli utenti che il sito utilizza i cookies.
1° step: usare HTML e CSS per la costruzione e lo stile;
2° step: usare jQuery per implementare la funzione che permette il
box di scomparire.
Esercizi 2
Creare un sistema di filtraggio che permetta l’eliminazione di alcuni
colori una volta cliccato il nome.
NB attenzione ai nomi degli id dei blocchi e dei bottoni