Diamo vita ai tuoi siti XHTML – CSS – FLASH
FancyBox
Oggi voglio parlarvi delle fancy box, i nuovi lightbox per quelli del mestiere, infatti adesso abbiamo la possibilità di visualizzare immagini con effetti nuovi di transizione, ma non solo anche contenuti testuali, html, flash e gestire all’interno dei campi iframe e chiamate ajax.
In queste pagina vi mostrerò le sintassi di codice da usare per avere gli effetti che vi mostrerò nella pagine degli esempi, in più vi illustrerò altre variabili che possiamo utilizzare per i nostri scopi.
Prima di tutto dobbiamo inserire nella nostra pagina gli “script” jquery, jquery.fancybox e jquery.easign. Mi raccomando non fate come me che vi dimenticate di inserire jquery e non capite il perchè non funziona :p
Potete scaricarvi il pacchetto completo con le immagini e gli script da Google Code
<script type="text/javascript" src="tuo_percorso/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="jtuo_percorso/jquery.fancybox-1.2.1.js"></script> <script type="text/javascript" src="tuo_percorso/jquery.easing.1.3.js"></script>
Adesso abbiamo bisogno di associare anche il foglio di stile delle nostre fancy box
<link href="tuo_percorso/jquery.fancybox.css" rel="stylesheet" type="text/css" />
E adesso siamo quasi pronti per iniziare… Vi mostro la pagina degli esempi che spiegherò parte per parte. Esempio
Partiamo dall’esempio 1, lightbox semplice:
Dobbiamo settare al $(document).ready della nostra pagina le seguenti variabili, che sono associate al fancy box dell’immagine con classe img1
<script type="text/javascript"> $(document).ready(function() { $(".img1").fancybox({ 'zoomSpeedIn': 500, 'zoomSpeedOut': 500, 'overlayShow': true, 'zoomOpacity':false, 'overlayOpacity':0.8 }); }); </script>
Il link della nostra immagine sarà così composto:
<a class="img1" href="img/zoom1.jpg" title="image"> <img src="img/min1.jpg" /> </a>
Esempio 2, lightbox semplice senza però la mascherà di overlay:
<script type="text/javascript"> $(document).ready(function() { $(".img2").fancybox({ 'zoomSpeedIn': 500, 'zoomSpeedOut': 500, 'overlayShow': false, 'zoomOpacity':true }); }); </script>
Il link della nostra immagine:
<a class="img2" href="img/zoom2.jpg" title="image"> <img src="img/min2.jpg" /> </a>
Esempio 3, qui iniziamo a vedere qualcosa in più rispetto ai semplici lightbox, l’utilizzo dell’easing per fare la transizioni di entrata e uscita, senza la maschera di overlay:
<script type="text/javascript"> $(document).ready(function() { $(".img3").fancybox({ 'zoomSpeedIn': 1000, 'zoomSpeedOut':1000, 'overlayShow': false, 'easingIn':'easeOutBack', 'easingOut':'easeInBack', 'zoomOpacity':true }); }); </script>
Il link della nostra immagine:
<a class="img3" href="img/zoom3.jpg" title="image"> <img src="img/min3.jpg" /> </a>
Oltre alle animazioni sulle singole immagini possiamo ovviamente anche avere una gallery di immagini e quindi devono essere concatenate tra di loro.
<script type="text/javascript"> $(document).ready(function() { $(".group").fancybox({ 'overlayShow': true, 'overlayOpacity':0.8 }); }); </script>
Script semplice, basta associare alle nostre immagini di la classe ‘.group’ e l’attributo ‘rel’ univoco. Nel mio caso ho uscato lo stesso nome, ma possiamo benissimo avere più gallery nella stessa pagina e quindi dobbiamo usare ‘rel’ diversi.
<a class="group" href="img/zoom1.jpg" title="image" rel="group"> <img src="img/min1.jpg" /> </a>
Ed ora vediamo la parte che forse è più interessante, ovvero poter far caricare all’interno del nostro box qualcosa che non sia un immagine, vediamo come si fa:
teniamo presente che il $(document).ready per la visualizzazione va benissimo qualsiasi di quelli visti in precedenza.
Visualizzazione di un codice inline, tipo la presentazione di un video preso da youtube:
<a class="group" href="#youtube" title="video da youtube" rel="group"><img src="img/default.jpg" /></a> <div id="youtube" style="display:none;"> <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/LbDjX3kM1kc&hl=it&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/LbDjX3kM1kc&hl=it&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object> </div>
All’ href del link associamo l’id del div che contiene il nostro codice.
Visualizzazione di iframe, visualizzazione di una pagina all’interno del box:
<a class="group" href="http://www.google.com/webhp?ie=UTF-8&iframe" rel="group"><img src="img/google.jpg" style="border:0px;" /></a>
Possibilità di effettuare chiamate ajax:
<a class="group" href="ajax.txt" rel="group"><img src="img/min3.jpg" style="border:0px;" /></a>
E con questo ho illustrato tutti gli esempi, ora vediamo le variabili che possiamo usare.
| padding | Padding intorno al contenuto |
| imageScale | Se true, l’immagine viene scalata, all’interno dell’area visibile |
| zoomOpacity | Se true, cambia la trasparenza dell’immagine durante l’animazione di entrata e uscita |
| zoomSpeedIn | Velocità in millisecondi di entrata dell’animazione, se 0 niente animazione |
| zoomSpeedOut | Velocità in millisecondi di uscita dell’animazione, se 0 niente animazione |
| zoomSpeedChange | Velocità in millisecondi dell’animazione al cambio delle immagini di una gallery, se 0 niente animazione |
| easingIn, easingOut, easingChange | usata per gli effetti di animazione, da usare insieme alle velocità di zoom |
| frameWidth | larghezza di default per i nostri box con iframe e contenuti inline |
| frameHeight | altezza di default per i nostri box con iframe e contenuti inline |
| overlayShow | Se true mostra la maschera di overlay |
| Overlay color | è definita nel file di css del fancybox |
| overlayOpacity | Opacità della maschera (da 0 a 1) |
| hideOnContentClick | Se true, permette chiudere il FancyBox al click sul contenuto aperto |
| centerOnScroll | Se true, il contenuto sarà sempre al centro della pagina anche se la scrolliamo |
| itemArray | Opzionale, possibilità di settare i contenuti dentro un array |
| callbackOnStart | Opzionale, possibilità di fare una chiamata all’inizio dell’animazione |
| callbackOnShow | Opzionale, possibilità di fare una chiamata una volta aperto il contenuto |
| callbackOnClose | Opzionale, possibilità di fare una chiamata alla chiusura dell’animazione |
Vi lascio alcuni effetti di entrata e uscita che potrete usare, non fate caso se sono usate per flash, funzionano ugualmente ![]()
TransitionCheatSheets.zip.
Questi guida lo sviluppata grazie alla pagina ufficiale dell’autore delle FancyBox
circa 2 anni fa
Ciao, c’è un problema sull’inline, con safari il fancybox si chiude quando si clicca il tasto play per riprodurre il video di youtube.. con firefox non lo fa, ma non capisco perchè anche ad altri da questo problema (meno all’autore stesso sul suo sito), che funziona con tutti i browser
circa 2 anni fa
Ciao, grazie per avermi fatto notare il bug, mi informerò e vedrò se c’è un modo per risolvere il problema…
circa 1 anno fa
Ma funziona con Internet Explorer 6? Con questo browser gli esempi della pagina http://www.alexdesign.biz/tutorial_fancy_box/esempi_fancy_box.html non funzionano.
grazie, Marco
circa 1 anno fa
Ciao, si funziona… Avevo solo fatto un errore nello script del primo funzione di fancy!
Avevo messo alla fine una virgola:
$(“.img1″).fancybox({
‘zoomSpeedIn’: 500,
‘zoomSpeedOut’: 500,
‘overlayShow’: true,
‘zoomOpacity’:false,
‘overlayOpacity’:0.8, < —
});
mentre il codice corretto è senza:
$(“.img1″).fancybox({
‘zoomSpeedIn’: 500,
‘zoomSpeedOut’: 500,
‘overlayShow’: true,
‘zoomOpacity’:false,
‘overlayOpacity’:0.8
});
Un errore banale, ma avevo già risolto su uno dei siti, che avevo sviluppato, dimenticandomi di aggiornare l’esempio… Grazie per avermi fatto notare la cosa
circa 1 anno fa
Non è che avresti i files per avere gli angoli arrotondati con fancybox? Mi riferisco ai files fb_roundedCorners.zip e fb_roundedCorners_white_and_dark.zip perchè sul gruppo di google di fancybox ci sono i links ma i files non sono più disponibili… grazie e complimenti per il sito
circa 1 anno fa
ciao, no mi dispiace non ho i file che ti servono… ho fatto una ricerca veloce ma niente, farò una ricerca un pò più approfondita, se trovo qualcosa te lo farò sapere
circa 1 anno fa
Grazie Alex, questo tutorial è perfetto. Non ero riuscito ad inserire fancybox seguendo il tutorial ufficiale in inglese. L’unica cosa che mi piacerebbe sapere è se c’è la possibilità di impostare ler dimensioni in pixel della finestra in cui si apre l’iframe… forse è una cosa banale, in quel caso scusa l’ignoranza…! Ciao Angelo
circa 1 anno fa
ciao, per rispondere alla tua domanda, ci sono le proprietà frameWidth e frameHeight che ti permettono di dare una dimensione al iframe…
un esempio:
$(“.group”).fancybox({
‘overlayShow’: true,
‘frameWidth’: 500,
‘frameHeight’: 300
});
circa 1 anno fa
Ciao Alex! grazie per il tutorial che è perfetto.
Sto creando per il mio portfolio più gallerie di immagini con fancybox in una sola pagina.
sono riuscito a farle grazie al tuo aiuto, ma mi chiedevo come posso modificare la posizione del titolo di ogni immagine da esterna a quella interna “inside”.
spero tu possa aiutarmi.
Saluti!
circa 1 anno fa
ciao, spero di aver capito quello che chiedi, allora per modificare la posizione del titolo puoi modificare lo stile del div #fancy_title, il quale dovrebbe essere posizionato con position:absolute…
…se è quello che volevi sapere
altrimenti mi puoi contattare così vediamo meglio il tuo problema
circa 1 anno fa
Ciao Alex,
ho riscontrato un problema con il caricamento di più Iframe all\’interno della stessa pagina.
Ho diversi pusanti, ognuno dei quali apre una pagina html, ma funziona solamente il primo, gli altri aprono la pagina in modalita _blank invece che all\’interno del box.
Sai dirmi se sbaglio qualcosa io o se è un limite di fancy box?
Grazie
Marco
circa 1 anno fa
Ciao, ricordati di associare ad ogni link una classe fancy non un id
circa 1 anno fa
Ciao,
io faccio la domanda più scema dell’universo… ma non ho mai usato jquery, è la prima volta per me…
Qualcuno mi spiega per favore perché tutti gli che metto mi aprono il fancybox invece di andare al link richiesto?
Grazie mille
circa 1 anno fa
Ciao,
io faccio la domanda più scema dell’universo… ma non ho mai usato jquery, è la prima volta per me…
Qualcuno mi spiega per favore perché tutti i link che metto mi aprono il fancybox invece di andare alla pagina richiesta?
Grazie mille
circa 1 anno fa
Ciao, come hai associato nel document.ready la funzione del fancybox? L’hai associata ad una singola classe? O direttamente all’oggetto link?
circa 1 anno fa
Ciao Alex,
grazie per il tutorial è tutto molto chiaro! Ma purtroppo non riesco a far aprire un iframe (ad es. http://www.google.it) in un box, mi apre direttamente un’altra pagina!
Dove sbaglio?!
circa 8 mesi fa
come faccio ad inserire più link id various1?
circa 8 mesi fa
invece di usare l’id usa le classi, in modo che puoi associarla a più link
circa 8 mesi fa
ho un problema con internet explorer 9, la fancybox funziona con firefox, chrome, safari e opera, ma con explore non vuol saperne di aprirsi, sapresti dirmi da cosa dipende?
Grazie
circa 8 mesi fa
Ciao, ho copiato ed incollato il testo per mostrare il video di youtube, ma quello che succede quando clicco sul link è l’apertura di un overlay praticamente vuoto (un quadratino bianco) con niente dentro…nel sorgente della pagina eppure il codice dell’embedding di youtube c’è, sai mica cosa potrebbe essere (se magari ti è capitato)?
circa 4 mesi fa
Ciao,ti ringrazio per il tutorial è molto chiaro e semplice! Ho un problema che non riesco a risolvere però e premetto che sono una principiante dell’html:)sto creando un sito con Dreamweaver e all’interno del programma la gallery fancybox funziona,mentre su Chrome no,ovvero se clicco sull’immagine si apre un’altra pagina!
Come posso risolvere il problema?
Grazie mille!
circa 1 mese fa
Ciao Alex, dopo tante ricerche ho trovato il tuo sito dove parlavi del fancybox. Premetto sono una principiante e ho costruito il sito indicato sopra con Dremweaver CS5.
Non riesco però ad associare l’effetto della gallery.
Riesci a dirmi per quale motivo.
Spero di sentirti presto
Ciao Nancy
circa 3 settimane fa
salve ragazzi! questa galleria è fantastica,soltanto che non mi si apre per nessun motivo con IE… ho provato a fare qualche modifica ma non funzia per niente..
avreste quealche suggerimento?
grazie mille,
elisa