03 febbraio, 2011

Widget di uno slideshow orizzontale con link alle pagine del blog.

In ogni blog ci sono quelli che vengono definiti gli articoli pilastro cioè quei post che caratterizzano il sito per la loro autorità, per i commenti o per i feedback che hanno ricevuto. Il gadget dei Post più popolari per Blogger presenta già gli articoli che ricevono più visite ma non è detto che questi siano quelli che riteniamo più importanti. Anzi spesso capita che i post più visitati non siano quelli cui siamo più affezionati e che riteniamo i più validi tra quelli pubblicati. Vado a presentare un widget relativo a uno slideshow che mostra una selezione dei nostri post migliori o una scelta delle etichette più interessanti. Per ciascuna pagina dobbiamo prima selezionare una immagine che la caratterizzi e dobbiamo fare in modo che quest'ultime abbiano all'incirca le stesse dimensioni. Il titolo del post corrispondente sarà visibile quando la miniatura sarà puntata dal mouse.

L'aspetto del gadget potrà essere simile a questo

widget slideshow immagini con link

L'installazione del widget non presenta difficoltà ma è soltanto un po' laboriosa per quanto riguarda la scelta delle immagini, il loro ridimensionamento, l'inserimento di link e titoli dei collegamenti. Andate su Design > Aggiungi un gadget > HTML/Javascript e incollate questo codice

<!--SLIDESHOW MINIATURE INIZIO-->
<script type="text/javascript">
 
    var galleryspeed=
  
    var galleryanchor="620px"
 
    var galleryalt="115px"
 
    galleryback="#000000"
 
    var slidespace=5
    var imagespace=""
    var galleryimage=new Array()
    var endphoto=''
 
    galleryimage[0]='<a href="
http://www.ideepercomputeredinternet.com/search/label/add-on" target="blank"><img border="0" src="https://lh4.googleusercontent.com/_nT13UtBmmiU/TUpyoOtBKeI/AAAAAAAARrw/bufdtmNXtjA/alba1X.jpg" title="post con etichetta add-on" alt="Titolo Miniatura"></a>'
 
    galleryimage[1]='<a href="
http://www.ideepercomputeredinternet.com/search/label/annunci" target="blank"><img border="0" src="https://lh4.googleusercontent.com/_nT13UtBmmiU/TUpyoMAlRuI/AAAAAAAARr0/kBEWibne4-I/alba2x.jpg" title="post con etichetta annunci" alt="Titolo Miniatura"></a>'
 
    galleryimage[2]='<a href="
http://www.ideepercomputeredinternet.com/search/label/email" target="blank"><img border="0" src="https://lh4.googleusercontent.com/_nT13UtBmmiU/TUpyoHNt2cI/AAAAAAAARr4/A49NuDsRBoo/bicchierix.jpg" title="post con etichetta email" alt="Titolo Miniatura"></a>'
 
    galleryimage[3]='<a href="
http://www.ideepercomputeredinternet.com/search/label/twitter" target="blank"><img border="0" src="https://lh3.googleusercontent.com/_nT13UtBmmiU/TUpyoQqT5EI/AAAAAAAARsA/_SXq_KumNvY/tramonto2x.jpg" title="post con etichetta twitter" alt="Titolo Miniatura"></a>'
 
    galleryimage[4]='<a href="
http://www.ideepercomputeredinternet.com/search/label/immagini" target="blank"><img border="0" src="https://lh5.googleusercontent.com/_nT13UtBmmiU/TUpyoYnxhKI/AAAAAAAARr8/DbP7jdnx9nE/tramonto1x.jpg" title="post con etichetta immagini" alt="Titolo Miniatura"></a>'
 
    var copyspeed=galleryspeed

  //Non modificare nulla nella parte sottostante

    galleryimage='<nobr>'+galleryimage.join(imagespace)+'</nobr>'
    var iedom=document.all||document.getElementById
    if (iedom)
    document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+galleryimage+'</span>')
    var actualwidth=''
    var cross_slide, ns_slide
 
    function fillup(){
    if (iedom){
    cross_slide=document.getElementById? document.getElementById("test2") : document.all.test2
    cross_slide2=document.getElementById? document.getElementById("test3") : document.all.test3
    cross_slide.innerHTML=cross_slide2.innerHTML=galleryimage
    actualwidth=document.all? cross_slide.offsetWidth : document.getElementById("temp").offsetWidth
    cross_slide2.style.left=actualwidth+slidespace+"px"
    }
    else if (document.layers){
    ns_slide=document.ns_slidemenu.document.ns_slidemenu2
    ns_slide2=document.ns_slidemenu.document.ns_slidemenu3
    ns_slide.document.write(galleryimage)
    ns_slide.document.close()
    actualwidth=ns_slide.document.width
    ns_slide2.left=actualwidth+slidespace
    ns_slide2.document.write(galleryimage)
    ns_slide2.document.close()
    }
    lefttime=setInterval("slideleft()",30)
    }
    window.onload=fillup
 
    function slideleft(){
    if (iedom){
    if (parseInt(cross_slide.style.left)>(actualwidth*(-1)+8))
    cross_slide.style.left=parseInt(cross_slide.style.left)-copyspeed+"px"
    else
    cross_slide.style.left=parseInt(cross_slide2.style.left)+actualwidth+slidespace+"px"
 
    if (parseInt(cross_slide2.style.left)>(actualwidth*(-1)+8))
    cross_slide2.style.left=parseInt(cross_slide2.style.left)-copyspeed+"px"
    else
    cross_slide2.style.left=parseInt(cross_slide.style.left)+actualwidth+slidespace+"px"
 
    }
    else if (document.layers){
    if (ns_slide.left>(actualwidth*(-1)+8))
    ns_slide.left-=copyspeed
    else
    ns_slide.left=ns_slide2.left+actualwidth+slidespace
 
    if (ns_slide2.left>(actualwidth*(-1)+8))
    ns_slide2.left-=copyspeed
    else
    ns_slide2.left=ns_slide.left+actualwidth+slidespace
    }
    }
    if (iedom||document.layers){
    with (document){
    document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
    if (iedom){
    write('<div style="position:relative;width:'+galleryanchor+';height:'+galleryalt+';overflow:hidden">')
    write('<div style="position:absolute;width:'+galleryanchor+';height:'+galleryalt+';background-color:'+galleryback+'" onmouseover="copyspeed=0" onmouseout="copyspeed=galleryspeed">')
    write('<div id="test2" style="position:absolute;left:0px;top:0px"></div>')
    write('<div id="test3" style="position:absolute;left:-1000px;top:0px"></div>')
    write('</div></div>')
    }
    else if (document.layers){
    write('<ilayer width="+galleryanchor+" height="+galleryalt+" name="ns_slidemenu" bgcolor="+galleryback+">')
    write('<layer left="0" top="0" onmouseover="copyspeed=0" onmouseout="copyspeed=galleryspeed" name="ns_slidemenu2"></layer>')
    write('<layer left="0" top="0" onmouseover="copyspeed=0" onmouseout="copyspeed=galleryspeed" name="ns_slidemenu3"></layer>')
    write('</ilayer>')
    }
    document.write('</td></table>')
    }
    }
    </script>

  <noscript><a href='http://goo.gl/D68wy' target='_blank'>Slideshow Widget</a></noscript>
<!--SLIDESHOW MINIATURE  FINE - www.ideepercomputeredinternet.com-->

Le personalizzazioni riguardano i parametri evidenziati in rosso e in viola:

  1. Gli URL dei collegamenti ai post o alle etichette vanno inseriti nei tag a href="
  2. Gli URL delle immagini che sono state precedentemente caricate su hosting come Picasa, SkyDrive o DropBox e che vanno dopo il tag src="
  3. var galleryspeed=1 rappresenta la velocità del movimento. Aumentando il numero aumenta la velocità
  4. var galleryanchor="620px" è la larghezza del widget e può essere calibrata secondo il nostro layout
  5. var galleryalt="115px" rappresenta l'altezza del widget e deve essere inserita in funzione dell'altezza delle miniature. Ho utilizzato immagini di altezza di 113 pixel ed è per questo che ho messo 115px in questo parametro
  6. galleryback="#000000" è il colore di sfondo che si vede nel caso le miniature non siano tutte perfettamente della stessa altezza
  7. Il tag Title rappresenta il titolo del collegamento ed è il testo che viene visualizzato quando si punta una singola miniatura con il mouse
  8. IL tag Alt, ovvero il testo alternativo, serve ai fini SEO e mostra la scritta che visualizza il visitatore se ha un browser che non riesce a aprire l'immagine
  9. Si possono inserire tutte le immagini con link che vogliamo con la seguente sintassi
    galleryimage[X]='<a href="URL COLLEGAMENTO" target="blank"><img border="0" src="URL IMMAGINE" title="TITOLO POST" alt="TITOLO IMMAGINE"></a>'

    Dove si sostituisce a X tutti i numeri progressivi (5, 6, 7, ecc), si incollano gli URL del link e della immagine oltre a digitarne titolo e testo alternativo
  10. Lo script ha la particolarità che si ferma lo scorrimento quando si punta il widget con il mouse e ricomincia non appena si toglie

Questo gadget è uno sviluppo di uno più semplice che avevo presentato qualche tempo fa e che era uno slideshow basato sul tag marquee. Contrariamente a quel widget, in questo caso non sono presenti spazi vuoti e le miniature appaiono senza soluzione di continuità.



41 commenti:

  1. grazie mille Ernesto era proprio ciò che volevo :*

    RispondiElimina
  2. @Soffio di Dea: Stavo proprio per consigliarti di sbirciare i post del "nostro" Ernestaccio.. per quanto riguarda le slide sul sito, che mi hai chiesto su facebook. E TADAAAAN..anche stavolta ha colpito nel segno!! :D

    RispondiElimina
  3. yes ^_^ ora mi servirebbe solo l'effetto flash da dare alle foto attraverso un css... chiedo troppo lo so ^_^

    RispondiElimina
  4. @Soffio di Dea
    Se solo sapessi a quale ti riferisci. Qui ce ne sono un sacco
    http://javascript.html.it/script/lista/9/immagini-effetti-su-immagini/

    RispondiElimina
  5. Questo widget potrebbe essere utile se riportasse gli ultimi articoli(con relative foto) e fosse automatizzato...

    RispondiElimina
  6. @Maxso
    Esiste già
    http://www.ideepercomputeredinternet.com/2010/01/come-inserire-il-widget-degli-ultimi.html

    RispondiElimina
  7. Grazie. Bel widget. Inserito sul mio blog.

    RispondiElimina
  8. @Parsifal32: Avevo già letto quel post. Il problema è che le foto sono fisse e non riportano le immagini che pubblico nel post.

    RispondiElimina
  9. grazie Ernesto mica lo avevo visto sai ^_^ forse già te l'ho chiesto, ma come faccio a pubblicare automaticamente sulla mia pagina facebook i commenti sul mio blog?

    RispondiElimina
  10. @Maxso
    Non è ancora stato inventato uno slideshow orizzontale per blogger ma c'è solo verticale
    http://www.ideepercomputeredinternet.com/2010/04/slideshow-degli-ultimi-articoli-con.html

    @Soffio Di Dea
    Si possono pubblicare tutti i commenti del blog sulla pagina fan e si può anche fare in modo di pubblicare solo i nostri per evitare di intasarla troppo. Leggi questo post in cui si usa TwitterFeed
    http://www.ideepercomputeredinternet.com/2009/11/come-postare-i-commenti-del-blog-su.html
    Leggi anche lo scambio di opinioni che ho avuto con il mio amico Soufiane.
    In sostanza bisogna creare un filtro che pubblichi solo i commenti che hanno il simbolo @
    E' per questo che quando pubblico un commento inizio sempre con
    @nome-utente.
    Ciao

    RispondiElimina
  11. ah ok grazie, mi piace molto l'effetto Sliding boxes
    (2a pagina del tuo link)

    RispondiElimina
  12. ciao Parsifal! fantastico, stavo proprio cercando uno slideshow cliccabile per il mio sito....
    Unico problema: ho assoluta necessità che le immagini si modifichino con effetto "fade" e nn scorrendo....
    E' possibile avere questo effetto sul tuo slideshow? sul web è introvabile!!! eppure centinaia di siti lo hanno!!
    grazie

    Anna

    RispondiElimina
  13. @Anna
    Non sono esperto di grafica quindi non so neppure che cosa sia l'effetto "fade" anche se conosco il significato della parola.
    Sto preparando l'effetto Piecemaker che spero sia di tuo gradimento.
    Ciao

    RispondiElimina
  14. salve non vorrei disturbare ma ho installato il gadget delle immagine come sopra,naturalmente dovrei caricare le mie foto di picasa,quindi ho modificato
    galleryimage[0]='<a dove al posto di http//www.ideepercomputeredinternet.com/search/label/add-on ho inserito il mio blog http://mondoscuola3000.blogspot.com/
    e al posto di https://lh4.googleusercontent.com/_nT13UtBmmiU/TUpyoOtBKeI/AAAAAAAARrw/bufdtmNXtjA/alba1X.jpg
    ho inserito il link di picasa cioè https://picasaweb.google.com/115924325168551086324/Foto# ma purtroppo non và sapete dirmi perchè?
    grazie

    RispondiElimina
  15. allora sono riuscito a caricarle finalmente,l'unica cosa che ci sono immagini che sono magari più alte quindi risaulta sfasato come faccio a regolarli

    RispondiElimina
  16. @Barone Mario
    Nella riga
    var galleryalt="115px"
    inserisci il numero in pixel dell'altezza delle tue foto (al posto di 115) che naturalmente devono essere tutte uguali. Per ridimensionarle puoi usare Pixlr
    http://www.ideepercomputeredinternet.com/2011/01/pixlr-per-modificare-foto-e-immagini.html

    RispondiElimina
  17. urgente ho caricato le foto tutto bene soltanto che adesso la pagina mi compaie con la barra di scorrimento orizzontale in basso perchè?

    RispondiElimina
  18. @Barone Mario
    Vai su Design > Elementi pagina, individua il widget e con il mouse trascinalo nel punto del layout in cui lo vuoi visualizzare. Clicca su Salva in alto a destra.

    RispondiElimina
  19. Volevo segnalare a Barone Mario che cliccando sulle immagini si va ai post di Parsifal (non so se era il suo scopo quando ha inserito il widget).

    RispondiElimina
  20. ciao ragazzi sono riuscito ad inserire le immaggine ma per avere invece che 4 immagine che scorrono nè vorrei 6 cosa bisogna cambiare?

    RispondiElimina
  21. http://mondoscuola3000.blogspot.com/
    come vedi ho già inserito le mie immagini ma volevo praticamente che lo slide delle immagini orizzontale fosse più esteso da occupare l'intero blog da destra verso sinistra

    RispondiElimina
  22. @Barone Mario
    Ho l'impressione che tu non legga molto attentamente i miei articoli ^_^
    E' specificato al punto 4)che bisogna intervenire su
    var galleryanchor="620px"
    Se vuoi il widget più largo metti "700px" o anche di più finché non trovi la giusta larghezza.
    Ciao

    RispondiElimina
  23. Parsifal.. alla fine ho preferito inserire questo nel mio blog (http://myricettarium.blogspot.com/)
    che è perfettamente funzionante anche con IE8.. rispetto all'altro con il tag marquee, che come ti dicevo nell'altro post con IE8 non andava! Grazie davvero!!!! Ti seguo semrpe! ;-) buona serata

    RispondiElimina
  24. Bello!E questo si puo anche fare in verticale??

    RispondiElimina
  25. Si puo creare una cosa simile per gli ultimi articoli pubblicati oppure per i post piu popolari?

    RispondiElimina
  26. @Rubel Questa domanda mi viene fatta di continuo e purtroppo devo dare sempre la stessa risposta. Che io sappia al momento nessun blogger in tutto il pianeta è riuscito a creare uno slideshow orizzontale con le miniature degli ultimi articoli, degli articoli più popolari o comunque di post acquisiti mediante feed. Nel caso ne venissi a conoscenza, pubblicherei immediatamente la versione italiana.

    RispondiElimina
  27. è possibile inserirne 2 in una stessa pagina? ci ho provato ma uno lo carica e l'altro no, quindi vorrei sapere se è necessario apportare delle modifiche

    RispondiElimina
  28. @Simone Si può tentare. Nel codice ci sono due occorrenze di
    fillup
    e due occorrenze di
    slideleft
    Nel secondo slideshow prova a sostituire fillup con
    fillup1
    e slideleft con
    slideleft1
    in tutte le occorrenze. Dovrebbe andare, non credo occorra sostituire nient'altro.

    RispondiElimina
  29. @Simone No, ho appena provato, non funziona :(

    RispondiElimina
  30. ciao a me non va! ho fatto tutti i passaggi ma non mi funziona! come faccio ? consigli?

    RispondiElimina
  31. @Maria Beatrice
    Ho appena dato una occhiata al post di demo e vedo che funziona regolarmente. Se a te non va e mi assicuri che hai fatto tutti i passaggi regolarmente vuol dire che ci sono delle incompatibilità tra questo widget e il tuo template. In questo caso c'è poco da fare.

    RispondiElimina
  32. bravissimo e quello che cercavo grazie sei il migliore.

    RispondiElimina
  33. Ciao, scusami se te lo chiedo, ma io ho provato ad usarlo, mi serve per una 30ina di immagini, all'inizio andava senza problemi con 5, poi dalla 5 in poi non me le ha visualizzate più...eppure il codice è correttissimo, non è che magari c'è un limite tipo?Grazie

    RispondiElimina
  34. @administrator
    In teoria no ma probabilmente quando si mettono troppe immagini non ce la fa a caricarsi. Se con cinque andava bene prova con dieci e, se va sempre bene, aumenta di 5 in cinque ogni volta fino ad arrivare al massimo consentito che non so quale sia ;)

    RispondiElimina
  35. Ho provato, il massimo è di 6 immagini compreso lo 0...Dopo di che non appare proprio più lo slide...

    RispondiElimina
  36. @administrator
    Forse dipende anche dalla lunghezza del widget. Se è di 620 pixel può contenere un tot numero di immagini. Se aumentiamo la lunghezza probabilmente ne conterrà di più.

    RispondiElimina
  37. ciao ho trovato il tuo post meraviglioso, però non mi funziona eppure il codice è corretto, chissà qualche incompatibilita? uso webnode

    RispondiElimina
  38. @Azzeccagarbugli.blog
    Non saprei dirti non conosco Webnote, questo codice è stato sviluppato per Blogger ...

    RispondiElimina