jQuery per far scorrere le ultime news in 4 righe!

Di Davide De Maestri - gleenk  //  Archivio Articoli  //  5 Commenti

Esistono molti plugins che permettono di realizzare dei “news ticker”, ovvero script che permettono di vedere le ultime news scorrere.
Oggi vediamo però come realizzare la nostra versione semplificata utilizzando solamente 4 righe di codice.

L’idea di base è molto semplice, prendiamo il primo elemento di una lista, lo facciamo sparire e, in callback, lo riaggiungiamo alla fine della lista.

tasto per vedere la demo del tutorial

Il codice HTML da utilizzare

<ul id="ticker" class="ticker">
	<li><a href="#">Lorem ipsum dolor sit amet</a>, luctus et ultrices consectetur adipiscing elit. Praesent condimentum sagittis risus ac viverra. Integer vestibulum volutpat...</li>
	<li>Faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam at ligula purus. Fusce ligula massa, commodo eu aliquam non, pharetra ut nisl.... </li>
        <li>Proin mollis eros quis massa dictum sodales. Suspendisse elementum, dui sed tincidunt ultricies, dolor ipsum dictum felis, id consequat ligula risus...</li>
	<li><a href="#">Sed</a> liquam eget blandit elit. Aenean luctus et ultrices arcu augue, fringilla a eleifend in, bibendum sed augue. Aliquam consectetur arcu at arcu...</li>
</ul>

Come possiamo vedere non c’è nulla di strano, solo un semplice elenco puntato dal quale andremo a nascondere il primo elemento…

Il CSS e due regole, il resto è creatività!

Affinchè lo nostro script funzioni correttamente sarà bene prendere alcune accortezze. Il mio consiglio spassionato è quello di impostare un’altezza fissa agli elementi di lista ed al contenitore, all’<ul> quindi, per evitare che l’altezza del blocco in cui è inserito il nostro widget vari continuamente creando uno sgradevole effetto visivo. Nel mio caso, tralasciando la non-creatività :) , mi sono limitato ad impostare quanto appena esposto:

#ticker {
	overflow: hidden;
	font-size:13px;
	margin:0;
	padding:0;
	height:243px;
	}
#ticker li {
	list-style:none;
	padding:0;
	margin:0;
	height: 60px;
	background:#333;
	color:#fff;
	padding:10px;
	border-bottom:1px solid #CCC;
}
#ticker li a {
	color:#F90;
	}

La dichiarazione overflow:hidden viene messa solo a scopo precauzionale nel caso in cui ci si dimenticasse si troncare il testo alla lunghezza desiderata. In questo modo non straborderà fuori dal contenitore ma verrà nascosto.

Azioniamo il tutto con jQuery

Bastano infine 4 righe per far partire l’animazione desiderata… vediamo che cosa scrivere:

function ticker(){
		$('#ticker li:first').slideUp(
		function () { $(this).appendTo($('#ticker')).slideDown(); });
	}
setInterval(function(){ ticker () }, 3000);

La funzione ticker() viene lanciata grazie al setInterval() che ci dice di ripetere le azioni ogni 3000 ms (3 secondi). Lo script dice invece semplicemente di effettuare lo slideUp() del primo elemento della lista, di appenderlo in coda a #ticker e quindi di fare lo slideDown().
Ed il trucco è presto svelato :)

tasto per vedere la demo del tutorial

Altri articoli che potrebbero interessarti

  1. Liste sequenziali ed elementi consecutivi con jQuery
  2. Realizzare un accordion jQuery in 5 righe di codice!
  3. jQuery each – ripetere un’azione diversa per ogni elemento
  4. jQuery News Slider – gleenk spotSlider v1.0
  5. Effetto Easing su menù con jQuery UI
Webdesign Feed Rss
  • Il_vare

    Molto interessante, lo sto subito usando! ma come posso fare che sia visualizzato 1 solo per volta? e non 3?

    • http://www.gleenk.com/ Davide De Maestri

      Ciao, puoi provare cambiando l’altezza di #ticker via css ;)

      • Il_vare

        ho fatto cosi e l’effetto è quello desiderato! Grazie mille!!

  • Aledesign.it

    Interessante pure questo post. Per caso, uno abbinato a delle immagini ce l’avresti? MOlti spesso chiedono news con immagini.. e farlo in flash non sempre conviene.

    • http://www.gleenk.com/ Davide De Maestri

      Cioè? Non mi è chiarissimo, se mi spieghi bene posso farci un tutorial certamente :)

Davide De Maestri - DMSDVD86L27F704W

Privacy Policy