<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Howtoweb.it &#187; jquery</title>
	<atom:link href="http://www.howtoweb.it/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.howtoweb.it</link>
	<description>Tutorial e risorse per chi lavora sul web</description>
	<lastBuildDate>Fri, 25 Jun 2010 09:04:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Utilizzare JQuery UI Autocomplete con PHP e Mysql</title>
		<link>http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/</link>
		<comments>http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 08:56:36 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=680</guid>
		<description><![CDATA[
In questo articolo vedremo come integrare facilmente il widget autocomplete di Jquery UI all&#8217;interno di pagine dinamiche.
L&#8217;utilizzo è molto semplice, come prima cosa è necessario scaricare il pacchetto completo di Jquery UI compreso di tema personalizzato o standard e collegare i rispettivi files alla pagina dinamica.
&#60;link rel="stylesheet" href="css/theme/ui.theme.css" type="text/css"/&#62;
&#60;script src="js/jquery.min.js" type="text/javascript"&#62;&#60;/script&#62;
&#60;script src="js/jquery-ui.min.js" type="text/javascript"&#62;&#60;/script&#62;
Ora possiamo aggiungere [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-687" title="autocomplete" src="http://www.howtoweb.it/wp-content/uploads/2010/06/autocomplete.jpg" alt="" width="580" height="200" /></p>
<p>In questo articolo vedremo come integrare facilmente il widget autocomplete di Jquery UI all&#8217;interno di pagine dinamiche.</p>
<p>L&#8217;utilizzo è molto semplice, come prima cosa è necessario scaricare il pacchetto completo di Jquery UI compreso di tema personalizzato o standard e collegare i rispettivi files alla pagina dinamica.</p>
<pre>&lt;link rel="stylesheet" href="css/theme/ui.theme.css" type="text/css"/&gt;
&lt;script src="js/jquery.min.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;script src="js/jquery-ui.min.js" type="text/javascript"&gt;&lt;/script&gt;</pre>
<p>Ora possiamo aggiungere l&#8217;elemento input che utilizzero per l&#8217;autocomplete, per comodità di selezione verrà aggiunto un id.</p>
<pre>&lt;input value="Insert your tag here" /&gt;</pre>
<p>Per ciò che riguarda javascript iniziamo applicando un autocomplete base al campo input</p>
<pre>$(function() {var myTags = ["tag1", "tag2", "anotherTag", "simpleTag"];
$("#tags").autocomplete({source: myTags});});</pre>
<p>In questo caso settiamo come opzione &#8220;source&#8221; che specifica come sorgente l&#8217;array &#8220;myTags&#8221;.Per rendere dinamico l&#8217;autocomplete modifichiamo la sorgente con un file dinamico che si occuperà di effettuare la ricerca</p>
<pre> $("#tags").autocomplete({source: "tagSearch.php"});</pre>
<p>Di seguito un esempio per tagSearch.php:</p>
<pre>//creazione di un array vuoto
$return_arr = array();

//dati di accesso a mysql e al db
$dbhost = 'YOUR_SERVER';
$dbuser = 'YOUR_USERNAME';
$dbpass = 'YOUR_PASSWORD';
$dbname = 'YOUR_DATABASE_NAME';

//definisco la variabile di ricerca dell'utente
$term = $_GET("term");

//connessione al a mysql
$conn = mysql_connect($dbhost, $dbuser, $dbpass)
or die ('Impossibile connettersi a Mysql');
//selezione ddb
mysql_select_db($dbname);
//se connesso
if ($conn)
{
//query select
$fetch = mysql_query("SELECT * FROM tags WHERE MATCH(tagName) AGAINST('".$term."*')");
//loop dei dati
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$row_array['value'] = $row['tagName '];
array_push($return_arr,$row_array);
}

}
//chiudo la connessione a mysql
mysql_close($conn);
//restituisco l'array in formato json
echo json_encode($return_arr);</pre>
<p>La variabile $terms viene ricavata dall&#8217;url, l&#8217;autocomplete di Jquery UI richiama infatti il file search.php con la variabile term (es. search.php?term=ciao) ad ogni change nel campo input.Considerato che la variabile term viene aggiornata e inviata ad ogni change del campo ho utilizzato MATCH AGAINST nella query affinchè ad ogni richiesta mysql cerchi l&#8217;input dell&#8217;utente seguito da altro.Il risultato è che a fronte di una ricerca &#8220;a&#8221; verranno restituiti tutti i dati che iniziano per &#8220;a&#8221;, aggiungendo lettere verranno restituiti solo i dati che corrispondono ai criteri della ricerca.</p>
<p>L&#8217;autocomplete di JQuery UI prevede una vasta serie di opzioni con le quali è possibile manipolare i dati prensenti nell&#8217;input e nei risultati, creare una cache dai dati e customizzare aspetto e animazioni dell&#8217;input.Per maggiori informazioni consiglio una lettura della documentazione disponibile sulla <a title="jquery ui autocomplete demo" href="http://jqueryui.com/demos/autocomplete/" target="_blank">pagina dedicata</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/articoli/utilizzare-jquery-ui-autocomplete-con-php-e-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Realizzare select multilingue con Jquery</title>
		<link>http://www.howtoweb.it/tutorial/realizzare-select-multilingue-con-jquery/</link>
		<comments>http://www.howtoweb.it/tutorial/realizzare-select-multilingue-con-jquery/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 05:00:25 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=666</guid>
		<description><![CDATA[
In questo articolo vedremo come realizzare un selettore multilingue con html, css e jquery, per vedere l&#8217; esempio completo visitate la demo.
Per questo tutorial ho utilizzato world-flags-sprite, una soluzione css che offre una vasta gamma di bandiere di numerosi stati attraverso la tecnica degli sprites css, consiglio vivamente questa soluzione che permette di aggiungere facilmente [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-665" title="selectlanguageImage" src="http://www.howtoweb.it/wp-content/uploads/2010/06/selectlanguageImage.jpg" alt="" width="580" height="200" /></p>
<p>In questo articolo vedremo come realizzare un selettore multilingue con html, css e jquery, per vedere l&#8217; esempio completo visitate la <a href="http://www.howtoweb.it/wp-content/uploads/selectlanguage/" target="_self">demo</a>.</p>
<p>Per questo tutorial ho utilizzato <a title="world flags sprite" href="http://github.com/lafeber/world-flags-sprite" target="_blank">world-flags-sprite</a>, una soluzione css che offre una vasta gamma di bandiere di numerosi stati attraverso la tecnica degli sprites css, consiglio vivamente questa soluzione che permette di aggiungere facilmente le immagini per nuove lingue.<br />
Iniziamo creando un nuovo file html in cui inseriremo il nostro markup. L&#8217;esempio qui proposto è pensato in chiave statica ma può essere facilmente applicato anche a pagine dinamiche gestendo l&#8217;output del testo e delle classi.</p>
<h3>HTML</h3>
<pre>
<div id="_mcePaste">&lt;ul&gt;</div>
<div id="_mcePaste">&lt;li&gt;</div>
<div id="_mcePaste">&lt;a href="http://www.mywebsite.it/index.html?lang=it" title="Italy"&gt;</div>
<div id="_mcePaste">&lt;span&gt;&lt;/span&gt;Italy</div>
<div id="_mcePaste">&lt;/a&gt;</div>
<div id="_mcePaste">&lt;/li&gt;</div>
<div id="_mcePaste">&lt;li&gt;</div>
<div id="_mcePaste">&lt;a href="http://www.mywebsite.it/index.html?lang=us" title="Usa"&gt;</div>
<div id="_mcePaste">&lt;span&gt;&lt;/span&gt;Usa</div>
<div id="_mcePaste">&lt;/a&gt;</div>
<div id="_mcePaste">&lt;/li&gt;</div>
<div id="_mcePaste">&lt;li&gt;</div>
<div id="_mcePaste">&lt;a href="http://www.mywebsite.it/index.html?lang=uk" title="England"&gt;</div>
<div id="_mcePaste">&lt;span&gt;&lt;/span&gt;England</div>
<div id="_mcePaste">&lt;/a&gt;</div>
<div id="_mcePaste">&lt;/li&gt;</div>
<div id="_mcePaste">&lt;li&gt;</div>
<div id="_mcePaste">&lt;a href="http://www.mywebsite.it/index.html?lang=fr" title="France"&gt;</div>
<div id="_mcePaste">&lt;span&gt;&lt;/span&gt;France</div>
<div id="_mcePaste">&lt;/a&gt;</div>
<div id="_mcePaste">&lt;/li&gt;</div>
<div id="_mcePaste">&lt;li&gt;</div>
<div id="_mcePaste">&lt;a href="http://www.mywebsite.it/index.html?lang=es" title="Spain"&gt;</div>
<div id="_mcePaste">&lt;span&gt;&lt;/span&gt;Spain</div>
<div id="_mcePaste">&lt;/a&gt;</div>
<div id="_mcePaste">&lt;/li&gt;</div>
<div id="_mcePaste">&lt;li&gt;</div>
<div id="_mcePaste">&lt;a href="http://www.mywebsite.it/index.html?lang=de" title="Germany"&gt;</div>
<div id="_mcePaste">&lt;span&gt;&lt;/span&gt;Germany</div>
<div id="_mcePaste">&lt;/a&gt;</div>
<div id="_mcePaste">&lt;/li&gt;</div>
<div id="_mcePaste">&lt;/ul&gt;</div>
</pre>
<p>Definiamo una lista non ordinata con  all&#8217;interno degli elementi &#8220;li&#8221; che conterranno le singole lingue. In ogni singola voce definiamo un link che conterrà l&#8217;url al sito nella rispettiva lingua.In questo esempio ogni link rimanda ad una pagina fittizia a cui viene aggiunta una variabile per la selezione della lingua. Nel link inseriremo un elemento span che utilizzaremo come contenitore per l&#8217;immagine della bandiera e il testo della lingua.</p>
<p>Le classi presenti sull&#8217;elemento &#8220;ul&#8221; sono relative al layout della lista (.langSelect) e al template applicato (&#8220;.black&#8221;,&#8221;.white&#8221; oppure &#8220;.grey&#8221;). Le classi &#8220;.f16&#8243; e &#8220;flag&#8221; sono relative a flags16.css e servono per mostrare l&#8217;immagine delle rispettive bandiere.</p>
<h3>CSS</h3>
<p>La prima parte del css è dedicata al template. Colori, bordi e immagini di fondo sono gestiti dalle classi &#8220;.black&#8221; , &#8220;.white&#8221; e &#8220;.grey&#8221;.</p>
<pre>/*black theme*/
.black{background-color:#000;border:1px solid #444;}
.black li:first-child{background-position:right top;}
.black a{color:#fff;}
.black a:hover{background:#111;}
.black li:first-child + li{border-top:1px solid #444;}
/*white theme*/
.white{background-color:#eee;border:1px solid #bbb;}
.white li:first-child{background-position:right -25px;}
.white a{color:#333;}
.white a:hover{background:#ddd;}
.white li:first-child + li{border-top:1px solid #bbb;}
/*grey theme*/
.grey{background-color:#ccc;border:1px solid #eee;}
.grey li:first-child{background-position:right -50px;}
.grey a{color:#000;}
.grey a:hover{background:#999;}
.grey li:first-child + li{border-top:1px solid #aaa;}</pre>
<p>La seconda parte del css gestisce il layout della lista definendo dimensioni, spaziature e larghezza.</p>
<pre>.langSelect{
    width:150px;
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    border-radius:10px;
    text-align:left;
    list-style:none;
}
.langSelect li{
    line-height:25px;
    position:relative;
}
.langSelect a{
    padding-left:35px;
    position:relative;
    text-decoration:none;
    display:block;
}
.langSelect li:first-child a:hover{
    background:transparent;
}
.langSelect li:first-child{
    background-image:url(../img/bg_lang_select.png);
    background-repeat:no-repeat;
    -moz-border-radius:10px;
    -webkit-border-radius:10px;
    border-radius:10px;
}
.langSelect li:last-child a:hover{
    -moz-border-radius:0 0 10px 10px;
    -webkit-border-radius:0 0 10px 10px;
    border-radius:0 0 10px 10px;
}
.langSelect a span{
    width:16px;
    height:16px;
    position:absolute;
    top:50%;
    margin-top:-8px;
    left:10px;
}</pre>
<p>In questo modo è possibile creare stili customizzati in poco tempo e senza dover metter mano al layout.</p>
<h3>JQUERY E JAVASCRIPT</h3>
<p>Prima di inizare con il codice javascript assicuratevi di aver incluso la libreria  jquery nella pagina, la potete trovare sul <a title="jquery" href="http://www.jquery.com/" target="_blank">sito di jquery</a> o in alternativa caricarla attraverso le <a title="google ajax libraries api" href="http://code.google.com/apis/ajaxlibs/" target="_blank">Google AJAX Libraries API</a>.<br />
Lo script può essere incluso sia internamente che esternamente alla pagina html.</p>
<p>Il codice verifica innanzitutto il caricamento della pagina.</p>
<pre> $(function() {</pre>
<p>Una volta certo della presenza degli elementi nel DOM inizia nascondendo tutti gli elementi &#8220;li&#8221; successivi al primo.</p>
<p>$(&#8220;.langSelect li:first-child&#8221;).nextAll().hide();</p>
<p>La seguente istruzione verifica l&#8217;hover del mouse sulla lista.</p>
<pre> $(".langSelect").hover(function(){</pre>
<p>Al mouseover anima gli elementi successivi al primo &#8220;li&#8221; mostrandoli.</p>
<pre> $(this).find("li:first-child").nextAll().not(":animated").slideDown(500);</pre>
<p>Mentre al mouseout li nasconde</p>
<pre> $(this).find("li:first-child").nextAll().not(":animated").slideUp(500);</pre>
<p>Una piccola nota su questo passaggio, è possibile notare l&#8217;utilizzo di .not(&#8220;:animated&#8221;) questa aggiunta impedisce che le animazioni partano o si ripetano quando gli elementi sono ancora animati.<br />
Una volta completate le istruzioni sull&#8217;animazione definiamo il codice da eseguire al click della singola voce.</p>
<pre> $(".langSelect li").click(function(){</pre>
<p>Come prima cosa è necessario verificare se la voce cliccata sia quella già selezionata.</p>
<pre> if($("li").index(this) == 0){</pre>
<p>in quel caso annulliamo la chiamata del link e non eseguiamo ulteriori istruzioni</p>
<pre> return false;</pre>
<p>In questo caso return false sull&#8217;elemento li annulla la chiamata del link al suo interno impedendo la chiamata alla pagina su cui l&#8217;utente già si trova.<br />
Nel caso l&#8217;utente clicchi su una lingua diversa da quella selezionata spostiamo questa voce come prima della lista.</p>
<pre> $(this).prependTo($(this).parent("ul"));</pre>
<p>Subito dopo animo il menu per nascondere le altre lingue.</p>
<pre> $(this).parent("ul").find("li:first-child").nextAll().slideUp(400,</pre>
<p>E aggiungo una funzione di callback che al completamento dell&#8217;animazione rimanda l&#8217;utente all&#8217;url presente nel link della lingua cliccata.</p>
<pre> function (){
 location.href = $(this).find("a").attr("href");
 });</pre>
<p>Per concludere annullo la chiamata del link tradizionale ed evitare l&#8217;immediata chiamata alla pagina in questione.</p>
<pre> return false;</pre>
<p>Per vedere l&#8217; esempio completo visitate la <a href="http://www.howtoweb.it/wp-content/uploads/selectlanguage/">demo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/realizzare-select-multilingue-con-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Integrare le API di Youtube con PrettyPhoto</title>
		<link>http://www.howtoweb.it/tutorial/integrare-api-di-youtube-prettyphoto/</link>
		<comments>http://www.howtoweb.it/tutorial/integrare-api-di-youtube-prettyphoto/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 05:00:34 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=510</guid>
		<description><![CDATA[
L&#8217;integrazione del video nei siti web è ormai diventata una pratica comune, l&#8217;inserimento in una pagina web è molto semplice soprattutto se supportato da un servizio che ospita e gestisce i contenuti video come Youtube.
Nell&#8217;articolo di oggi mostrerò una semplice integrazione tra le Youtube API e il plugin per JQuery Prettyphoto per ottenere una galleria [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-515" title="esempio_youtube_api" src="http://www.howtoweb.it/wp-content/uploads/2009/08/esempio_youtube_api.jpg" alt="esempio_youtube_api" width="580" height="250" /></p>
<p>L&#8217;integrazione del video nei siti web è ormai diventata una pratica comune, l&#8217;inserimento in una pagina web è molto semplice soprattutto se supportato da un servizio che ospita e gestisce i contenuti video come Youtube.</p>
<p>Nell&#8217;articolo di oggi mostrerò una semplice integrazione tra le Youtube API e il plugin per JQuery Prettyphoto per ottenere una galleria di video in stile Youtube da inserire nella pagina del proprio sito.</p>
<p>Le Youtube API non sono altro che librerie messe a disposizione degli sviluppatori per gestire con semplicità i contenuti di Youtube su un sito esterno. E&#8217; possibile integrarle con diversi linguaggi e tecnologie, nell&#8217;esempio di oggi vedremo com&#8217;è possibile utilizzarle con javascript. Per ulteriori informazioni è possibile consultare la relativa <a title="Youtupe API" href="http://code.google.com/apis/youtube/getting_started.html" target="_blank">documentazione</a>.</p>
<p>PrettyPhoto è un plugin per jquery simile in tutto e per tutto a Lightbox (per prototype e scriptaculus) ulteriori informazioni sono disponibili sul sito ufficiale di <a title="PrettyPhoto" href="http://www.no-margin-for-errors.com/projects/prettyPhoto-jquery-lightbox-clone/" target="_blank">PrettyPhoto.</a></p>
<p><span id="more-510"></span></p>
<p>Per questa soluzione sono partito dall&#8217;<a title="Youtube API Example" href="http://gdata.ops.demo.googlepages.com/yt_json_codelab.html#attractive" target="_blank">esempio fornito da Youtube</a> nella rispettiva documentazione. Lo script proposto carica dal canale desiderato le thumbnails dei video e il rispettivo titolo, caricando inoltre il player che esegue il filmato sul quale viene cliccato.</p>
<p>Nel nostro caso desidero mantenere le thumbnails e i titoli ma preferisco evitare che il player occupi spazio nella pagina, modificherò quindi lo script per permettere l&#8217;apertura del video in un div grazie al plugin PrettyPhoto.</p>
<p>Per iniziare creiamo la nostra pagina html, avendo l&#8217;accortezza di lasciare un div con id nel quale verranno caricate le thumbnails dei video.</p>
<h3>Caricare i dati da Youtube</h3>
<p>Ora possiamo iniziare a creare il javascript che richiamerà i dati necessari da Youtube.</p>
<p>Per prima cosa inseriamo un link alle api di youtube, dove specificheremo che cosa selezionare (nel nostra caso andremo a prelevare tutti i video del canale di GoogleDevelopers).</p>
<pre>&lt;script type="text/javascript"
src="http://gdata.youtube.com/feeds/users/GoogleDevelopers/uploads?alt=json-in-script&amp;callback=getVideos"&gt;
&lt;/script&gt;</pre>
<p>Questo link ci permette di selezionare tutti i feed di un determinato utente (GoogleDevelopers) esenguendo una funzione javascript di callback (getVideos).</p>
<p>Andiamo quindi a definire la nostra funzione nella pagina.</p>
<pre>&lt;script type="text/javascript"&gt;
function getVideos(data) {

}
&lt;/script&gt;</pre>
<p>All&#8217;interno di questa funzione filtreremo i dati e li utilizzeremo per ottenere l&#8217;output desiderato.</p>
<p>Per prima cosa definiamo un array per i dati ottenuti</p>
<pre>var feed = data.feed;
var entries = feed.entry || [];</pre>
<p>Ora possiamo estrarre i dati utilizzando un ciclo for</p>
<pre>for (var i = 0; i &lt; entries.length; i++) {
}</pre>
<p>All&#8217;interno del quale ricaviamo i dati che ci servono</p>
<pre>var entry = entries[i];
var title = entry.title.$t.substr(0, 35);
var thumbnailUrl = entries[i].media$group.media$thumbnail[0].url;
var videoUrl = entries[i].media$group.media$player[0].url;</pre>
<p>Per gestire in maniera corretta l&#8217;output salviamo i dati relativi ai feed all&#8217;interno delle rispettive vairabili, in seguito raggruppiamo i dati con il codice html necessario all&#8217;impaginazione.</p>
<pre>html.push('&lt;div class="singleVideo"&gt;&lt;a rel="prettyPhoto[flash]" href="',videoUrl,'" title="',title,'"&gt;',
'&lt;img src="', thumbnailUrl, '"/&gt;','&lt;/a&gt;',
'&lt;a rel="prettyPhoto[flash]" href="',videoUrl,'" title="',title,'"&gt;&lt;span&gt;',title,'...&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;');</pre>
<p>Il risultato per ogni output del ciclo nell&#8217;html  sarà:</p>
<pre>&lt;div class="singleVideo"&gt;
&lt;a rel="prettyPhoto[flash]" href="[URLVIDEO]" title="[TITOLO VIDEO]"&gt;
&lt;img src="[THUMBNAILVIDEO]"/&gt;
&lt;/a&gt;
&lt;a rel="prettyPhoto[flash]" href="[URLVIDEO]" title="[TITOLO VIDEO]"&gt;
&lt;span&gt;[TITOLO VIDEO]...&lt;/span&gt;&lt;/a&gt;
&lt;/div&gt;</pre>
<p>L&#8217;ultima riga stamperà il risultato nell&#8217;elemento con l&#8217;id specificato</p>
<pre>document.getElementById('videoContainer').innerHTML = html.join('');</pre>
<h3>Aggiungiamo PrettyPhoto</h3>
<p>Avendo già inserito gli attributi <em>rel </em>per i link non resta che aggiungere Jquery e il plugin PrettyPhoto nella pagina</p>
<pre>&lt;script type="text/javascript" src="javascript/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="javascript/prettyPhoto.js"&gt;&lt;/script&gt;</pre>
<p>ed inserire le opzioni per il desiderato funzionamento di PrettyPhoto</p>
<pre>$(function() {
$("a[rel^='prettyPhoto']").prettyPhoto({
animationSpeed: 'normal',
padding: 40,
opacity: 0.35,
showTitle: true,
allowresize: true,
counter_separator_label: ' di ',
theme: 'light_square',
callback: function(){}
});
});</pre>
<p>Il risultato è visibile in questa <a title="Esempio di integrazione di API di Youtube con PrettyPhoto" href="http://www.howtoweb.it/wp-content/uploads/esempio_youtube/esempio_youtube.html" target="_self">demo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/integrare-api-di-youtube-prettyphoto/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Realizzare slideshow complessi con jquery cycle</title>
		<link>http://www.howtoweb.it/tutorial/realizzare-slideshow-complessi-con-jquery-cycle/</link>
		<comments>http://www.howtoweb.it/tutorial/realizzare-slideshow-complessi-con-jquery-cycle/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 12:10:44 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=467</guid>
		<description><![CDATA[
Tempo fa avevamo parlato di come realizzare un semplice slideshow con jquery, oggi vediamo come creare in poco tempo uno slideshow completamente customizzabile e compatibile grazie a jquery e jquery cycle.
Cos&#8217;è jquery cycle?
Jquery cycle è una libreria per jquery che permette la realizzazione di slideshow con molteplici effetti di transizione garantendo una buona customizzazione a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-488" title="jquerycycle" src="http://www.howtoweb.it/wp-content/uploads/2009/07/jquerycycle.jpg" alt="jquerycycle" width="580" height="201" /></p>
<p>Tempo fa avevamo parlato di <a title="Realizzare una semplice galleria immagini con jquery" href="http://www.howtoweb.it/tutorial/realizzare-una-semplice-galleria-immagini-con-jquery/" target="_self">come realizzare un semplice slideshow con jquery</a>, oggi vediamo come creare in poco tempo uno slideshow completamente customizzabile e compatibile grazie a jquery e jquery cycle.</p>
<h3>Cos&#8217;è jquery cycle?</h3>
<p>Jquery cycle è una libreria per jquery che permette la realizzazione di slideshow con molteplici effetti di transizione garantendo una buona customizzazione a livello funzionale tramite le opzioni messe a disposizione dagli sviluppatori.</p>
<p>Jquery cycle è scaricabile da <a title="Jquery cycle" href="http://malsup.com/jquery/cycle/" target="_blank">qui</a>.</p>
<h3><span id="more-467"></span>Come funziona?</h3>
<p>Per iniziare creiamo una pagina html ed inseririamo le immagini della nostra galleria all&#8217;interno di un div, al quale daremo delle regole css per dimensioni e stile.</p>
<pre>&lt;div id="photos"&gt;
&lt;img src="images/sample1.jpg" alt="Questa è la prima foto"/&gt;
&lt;img src="images/sample2.jpg" alt="Questa è la seconda foto"/&gt;
&lt;img src="images/sample3.jpg" alt="Questa è la terza foto"/&gt;
&lt;img src="images/sample1.jpg" alt="Questa è la quarta foto"/&gt;
&lt;img src="images/sample2.jpg" alt="Questa è la quinta foto"/&gt;
&lt;img src="images/sample3.jpg" alt="Questa è la sesta foto"/&gt;
&lt;img src="images/sample1.jpg" alt="Questa è la settima foto"/&gt;
&lt;/div&gt;</pre>
<p>Fatto questo colleghiamo la nostra pagina html alla libreria di jquery e al plugin di jquery cycle.</p>
<pre>&lt;script type="text/javascript" src="javascript/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="javascript/jquery_cycle.js"&gt;&lt;/script&gt;</pre>
<p>(ovviamente i percorsi andranno definiti in base alla struttura della cartella)</p>
<p>A questo punto inseriamo la funzione <em>cycle</em> che farà funzionare il nostro slideshow</p>
<pre>&lt;script type="text/javascript"&gt;
$(document).ready(function() {
  $('#photos').cycle({
    fx:'fade',
    speed:  1000,
    timeout: 2000
  });
});
&lt;/script&gt;</pre>
<p>In questo codice applichiamo la funzione <em>cycle </em>al div <em>#photos </em>definendo un effetto di transizione <em>fade</em>, una velocità di transizione di un secondo (<em>speed: 1000</em>) ed un timeout di due secondi (<em>timeout:2000).</em></p>
<p>Per vedere la demo clicca <a title="Esempio di slideshow semplice con Jquery cycle" href="http://www.howtoweb.it/wp-content/uploads/jquery_cycle/jquery_cycle.html" target="_self">qui</a>.</p>
<h3>Come aggiungere le thumbnails delle immagini</h3>
<p>Per aggiungere le thumbnails delle immagini possiamo utilizzare l&#8217;opzione <em>pager </em>per ottenere una paginazione numerica delle immagini e la funzione di callback <em>pagerAnchorBuilder </em>per sostituire i numeri alle rispettive thumbnails.</p>
<p>Creiamo quindi un div <em>#thumbnails </em>dove andremo a collocare le immagini</p>
<pre>&lt;div id="thumbnails"&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;</pre>
<p>Aggiungiamo quindi l&#8217;opzione <em>pager </em>per dichiarare a jquery cycle dove desideriamo collocare le anteprime</p>
<pre>$('#photos').cycle({
  fx:     'fade',
  speed:  1000,
  timeout: 2000,
  pager:  '#thumbnails ul',
});</pre>
<p>Per alleggerire l&#8217;esecuzione di javascript ho preferito aggiungere manualmente i tag <em>&lt;ul&gt;&lt;/ul&gt; </em>ma è possibile aggiungere questi tag attraverso jquery nel funzione <em>pagerAnchorBuilder </em>che andiamo ad aggiungere.</p>
<pre>$('#photos').cycle({
fx:     'fade',
speed:  1000,
timeout: 2000,
pager:  '#thumbnails ul', 

pagerAnchorBuilder: function(idx, slide) {
return '&lt;li&gt;&lt;a href="#" title="Thumbnail"&gt;&lt;img src="' + slide.src + '"/&gt;&lt;/a&gt;&lt;/li&gt;';
}
});</pre>
<p>La funzione <em>pagerAnchorBuilder </em>la normale paginazione di jquery cycle con le immagini contenute nello slide show.</p>
<p>Questo permette di visualizzare l&#8217;immagine scelta cliccando sulla thumbnail, viene inoltre messa a disposizione la classe <em>.activeSlide </em>presente sull&#8217;immagine attualmente visualizzata.</p>
<p>Questa soluzione molto comoda renderizza però due volte la stessa immagine, appesantendo notevolmente la pagina, in un contesto dinamico sarebbe opportuno gestire le thumbnails lato server per evitare ridimensionamenti da css che non riducono il peso dell&#8217;immagine.</p>
<p>Per vedere la demo clicca <a title="Esempio di slideshow semplice con thumbnails realizzato con Jquery cycle" href="http://www.howtoweb.it/wp-content/uploads/jquery_cycle/jquery_cycle_thumbs.html" target="_self">qui</a></p>
<h3>Aggiungere una navigazione direzionale</h3>
<p>Oltre alle thumbnails potrebbe essere utile aggiungere la possibilità all&#8217;utente di passare alla foto successiva o di tornare a quella precedente.</p>
<p>Per farè ciò è sufficiente creare due link con id da associare a jquery cycle</p>
<pre>&lt;div id="navPhotos"&gt;
&lt;a id="prev" href=""&gt;&lt;img src="images/button_prev.png" alt="Prev photo"&gt;&lt;/a&gt;
&lt;a id="next" href=""&gt;&lt;img src="images/button_next.png" alt="Next photo"&gt;&lt;/a&gt;
&lt;/div&gt;</pre>
<p>e aggiungere le opzioni <em>prev </em>e <em>next</em> al nostro script</p>
<pre>[...]
next:   '#next',
prev:   '#prev',
[...]</pre>
<p>In questo modo i due link porteranno sempre all&#8217;immagine precedente o successiva.</p>
<p>Da notare che entrambi i link sono contenuti nel div <em>#navPhotos </em>a questo viene assegnato un posizionamento assoluto e uno z-index elevato poichè jquery cycle utilizza la proprietà z-index per mostrare le immagini. Diventa dunque indispensabile settare uno z-index che sia sempre superiore al numero di immagini per poszionare i due link sopra lo slideshow.</p>
<p>Per vedere la demo clicca <a title="Esempio di slideshow semplice con navigazione realizzato con Jquery cycle" href="http://www.howtoweb.it/wp-content/uploads/jquery_cycle/jquery_cycle_arrow.html" target="_self">qui</a></p>
<h3>Aggiungere una descrizione alle immagini</h3>
<p>Per aggiungere una descrizione alle immagini è possibile sfruttare l&#8217;attributo <em>alt </em>del tag <em>&lt;img&gt;.</em></p>
<p>Con l&#8217;aiuto dell opzioni <em>before </em>e <em>after </em>è possibile richiamare delle funzioni prima e dopo il caricamento dell&#8217;immagine.</p>
<p>Definiamo quindi una div <em>#description </em>dove andremo ad inserire le descrizioni</p>
<pre>&lt;div id="description"&gt;
&lt;/div&gt;</pre>
<p>E aggiungiamo al nostro script le opzioni <em>after </em>e <em>before </em>che richiameranno le funzioni <em>onAfter </em>e <em>onBefore</em></p>
<pre>[...]
before:  onBefore,
after:   onAfter,
[...]</pre>
<p>Ora definiamo le funzioni <em>onBefore </em>e <em>onAfter </em>per caricare il testo contenuto nell&#8217;attributo <em>alt </em>del tag <em>&lt;img&gt;</em></p>
<pre><em>function onBefore() {
  $('#description p').fadeOut('1000');
}
function onAfter() {
  $('#description p').fadeIn('1000');
  $('#description').html('&lt;p&gt;' + this.alt + '&lt;/p&gt;');
}

</em></pre>
<p>Queste due funzioni andranno definite al di fuori della funzione <em>cycle </em>poichè vengono valutate ad ogni caricamento della singola immagine.</p>
<p>Per il div <em>#description </em>è stata creata una regola css simile a <em>#navPhotos</em> in modo che la descrizione sia posta sopra lo slideshow con uno z-index superiore al numero di immagini presenti.</p>
<p>Per vedere una demo clicca <a title="Esempio di slideshow semplice con descrizione delle immagini realizzato con Jquery cycle" href="http://www.howtoweb.it/wp-content/uploads/jquery_cycle/jquery_cycle_description.html" target="_self">qui</a></p>
<h3>In conclusione</h3>
<p>Come abbiamo visto jquery cycle mette a disposizione un numero elevato di opzioni per realizzare slideshow, è possibile inoltre aggiungere dei pulsanti per mettere in pausa o far ripartire lo slideshow, caricare contenuto diverso da immagini, settare un tempo di delay per sincronizzare più slideshow e customizzare i numerosi effetti presenti.</p>
<p>Per maggiori informazioni sulle possibilità di customizzazione esiste una sezione <a title="jquery cycle demo and examples" href="http://malsup.com/jquery/cycle/" target="_blank">demo ed esempi</a> sul sito di jquery cycle sicuramente molto utile.</p>
<p>Inoltre grazie alla gestione dello stile da css e al semplice markup è possibile creare valide alternative senza javascript per migliorarne l&#8217;accessibilità rendenfo questa una delle migliori soluzioni per realizzare slideshow in contesti statici e dinamici.</p>
<p><em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/realizzare-slideshow-complessi-con-jquery-cycle/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Realizzare una semplice galleria immagini con jquery</title>
		<link>http://www.howtoweb.it/tutorial/realizzare-una-semplice-galleria-immagini-con-jquery/</link>
		<comments>http://www.howtoweb.it/tutorial/realizzare-una-semplice-galleria-immagini-con-jquery/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 05:00:52 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=437</guid>
		<description><![CDATA[Realizzare una galleria immagine è un&#8217;operazione abbastanza comune per il buon web designer, di norma la sfida più grande consiste nel rinnovarsi e nell&#8217;aggiungere un approccio creativo ai vari progetti.
Per trovare una facile applicazione alle soluzioni più creative ci viene incontro jquery che mette a disposizione numerosi effetti e semplifica notevolemente l&#8217;utilizzo di javascript.
Vediamo come [...]]]></description>
			<content:encoded><![CDATA[<p>Realizzare una galleria immagine è un&#8217;operazione abbastanza comune per il buon web designer, di norma la sfida più grande consiste nel rinnovarsi e nell&#8217;aggiungere un approccio creativo ai vari progetti.</p>
<p>Per trovare una facile applicazione alle soluzioni più creative ci viene incontro jquery che mette a disposizione numerosi effetti e semplifica notevolemente l&#8217;utilizzo di javascript.</p>
<p>Vediamo come realizzare una semplice galleria di immagini in pochi passi.</p>
<p>Per prima cosa creiamo la nostra pagina html ed inseriamo all&#8217;interno un div con i relativi contenuti (nel nostro caso le immagini della galleria).</p>
<pre>&lt;div id="contenitore"&gt;
 &lt;div&gt;&lt;img src="images/1.jpg" alt="Immagine 1" /&gt;&lt;/div&gt;
 &lt;div&gt;&lt;img src="images/2.jpg" alt="Immagine 2" /&gt;&lt;/div&gt;
 &lt;div&gt;&lt;img src="images/3.jpg" alt="Immagine 3" /&gt;&lt;/div&gt;
&lt;/div&gt;</pre>
<p>Una struttura così semplice ci permetterà in seguito di creare alternative accessibili o per media che non supportano questa soluzione.</p>
<p>Fatto questo partiamo con jquery, come sempre iniziamo definendo la partenza dello script al caricamento della pagina con la funzione <em>ready.</em></p>
<pre>$(document).ready(function(){

});</pre>
<p>Come seconda mossa definiamo un evento che porterà l&#8217;utente a vedere l&#8217;immagine successiva. Nel nostro caso il click sul div (o meglio sulla prima immagine visualizzata).</p>
<pre>$(document).ready(function(){
$('div#contenitore div').click(function () { 

});
});</pre>
<p>Ora possiamo definire il codice che farà scomparire l&#8217;immagine attuale e mostrerà l&#8217;immagine successiva</p>
<pre>$(this).fadeOut(200, function() {$(this).next().fadeIn( 200);});</pre>
<p>In questo modo definiamo un fadeOut sul div contenitore dell&#8217;immagine su cui abbiamo appena cliccato e definiamo come funzione di callback un fadeIn sull&#8217;immagine successiva.</p>
<p>Rimane un unico problema da risolvere, quando si arriva all&#8217;ultima immagine questa deve scomparire e far apparire la prima. Per risolvere utilizziamo un semplice <em>if </em>che valuterà se l&#8217;elemento cliccato è l&#8217;ultimo del div oppure no.</p>
<pre>if ($(this).is(":last-child")) {
}else{
}</pre>
<p>Per vedere lo script in funzione guarda <a title="Galleria immagini con jquery" href="http://www.howtoweb.it/wp-content/uploads/jquerygallery/gallery_jquery.html" target="_self">questo esempio</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/realizzare-una-semplice-galleria-immagini-con-jquery/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Realizzare un rollover sull&#8217;immagine con Jquery in meno di un minuto</title>
		<link>http://www.howtoweb.it/tutorial/realizzare-un-rollover-sullimmagine-con-jquery-in-meno-di-un-minuto/</link>
		<comments>http://www.howtoweb.it/tutorial/realizzare-un-rollover-sullimmagine-con-jquery-in-meno-di-un-minuto/#comments</comments>
		<pubDate>Tue, 12 May 2009 05:00:42 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=378</guid>
		<description><![CDATA[Realizzare un effetto rollover per le immagini di un sito è un&#8217;operazione molto semplice ma diventa complessa quando dobbiamo applicare questo effetto ad un numero elevato (e soprattutto differente) di elementi.
Come prima cosa aggiungiamo un link nella pagina alla libreria di jquery.
&#60;script type="text/javascript" src="javascript/jquery.js"&#62;&#60;/script&#62;
Iniziamo il nostro codice con $(document).ready che attenderà il caricamento completo della [...]]]></description>
			<content:encoded><![CDATA[<p>Realizzare un effetto rollover per le immagini di un sito è un&#8217;operazione molto semplice ma diventa complessa quando dobbiamo applicare questo effetto ad un numero elevato (e soprattutto differente) di elementi.</p>
<p>Come prima cosa aggiungiamo un link nella pagina alla libreria di jquery.</p>
<pre>&lt;script type="text/javascript" src="javascript/jquery.js"&gt;&lt;/script&gt;</pre>
<p>Iniziamo il nostro codice con <em>$(document).ready </em>che attenderà il caricamento completo della pagina prima di eseguire il codice</p>
<pre>$(document).ready(function() {

)};</pre>
<p>Al suo interno iniziamo a definire la prima funzione</p>
<pre>$("img").each(function() {
rollsrc = $(this).attr("src");
rollON = rollsrc.replace(/.jpg$/ig,"_over.jpg");
$("&lt;img&gt;").attr("src", rollON);
});</pre>
<p>Questa funzione salva il valore dell&#8217;attributo <em>src </em>nella variabile <em>rollsrc</em> per ogni immagine presente nella pagina, nella variabile <em>rollON </em>utilizza l&#8217;url dell&#8217;immagine e aggiunge la stringa &#8220;_over&#8221;. Nell&#8217;immagine dell&#8217;esempio <em>cliccami.jpg </em>diventa <em>cliccami_over.jpg.</em> Questa funzione serve per precaricare le immagini prima che siano utilizzate nelle successive funzioni.</p>
<pre>$("a").mouseover(function(){
imgsrc = $(this).children("img").attr("src");
matches = imgsrc.match(/_over/);
if (!matches) {
imgsrcON = imgsrc.replace(/.jpg$/ig,"_over.jpg");
$(this).children("img").attr("src", imgsrcON);
}
});</pre>
<p>La seconda funzione inizia all&#8217;over del mouse sul link, verifica che l&#8217;elemento <em>&lt;img&gt;</em> sia figlio dell&#8217;elemento <em>&lt;a&gt; </em>e salva in una variabile l&#8217;url, verifica se all&#8217;interno della variabile esiste la parte &#8220;_over&#8221; in caso negativo sostiutisce il nome dell&#8217;immagine da <em>nomeimmagine.jpg</em> a <em>nomeimmagine_over.jpg</em>. Questo serve per evitare che javascript ripeta l&#8217;effetto rollover se il mouse è già sopra l&#8217;immagine.</p>
<p>Come ultima funzione definiamo il rispristino dell&#8217;url con l&#8217;evento  <em>mouseout</em></p>
<pre>$("a").mouseout(function(){
$(this).children("img").attr("src", imgsrc);
});</pre>
<p>Sarà sufficiente questa funzione per applicare un&#8217;effetto rollover su ogni immagine linkata di una pagina. Basterà fare attenzione a salvare le immagini per l&#8217;effetto rollover con con lo stesso nome ed in aggiunta &#8220;_over&#8221; prima del formato del file.</p>
<p>Per un vedere lo script in azione <a title="Esempio di rollover con Jquery" href="http://www.howtoweb.it/wp-content/uploads/rollover/rollover.html" target="_self">vedi l&#8217;esempio</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/realizzare-un-rollover-sullimmagine-con-jquery-in-meno-di-un-minuto/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Realizzare un contatore di battute con Jquery</title>
		<link>http://www.howtoweb.it/tutorial/realizzare-contatore-di-battute-in-una-textarea-jquery/</link>
		<comments>http://www.howtoweb.it/tutorial/realizzare-contatore-di-battute-in-una-textarea-jquery/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 05:00:56 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=241</guid>
		<description><![CDATA[Molto tempo fa realizzai un contatore di battute per un cms che limitava il testo inseribile dall&#8217;utente. Oggi questa soluzione è diventata obsoleta e anche poco accessibile, ma visto il successo di twitter che limita i caratteri inseribili a 140 e l&#8217;integrazione possibile sulle pagine html  potrebbe tornare utile un esempio basato su Jquery.
VEDI ESEMPIO

Lo [...]]]></description>
			<content:encoded><![CDATA[<p>Molto tempo fa realizzai un contatore di battute per un cms che limitava il testo inseribile dall&#8217;utente. Oggi questa soluzione è diventata obsoleta e anche poco accessibile, ma visto il successo di twitter che limita i caratteri inseribili a 140 e l&#8217;integrazione possibile sulle pagine html  potrebbe tornare utile un esempio basato su Jquery.</p>
<p><a title="Esempio conteggio battute con jquery" href="http://www.howtoweb.it/wp-content/uploads/textarea/esempio_textarea_count.html" target="_self">VEDI ESEMPIO</a></p>
<p><span id="more-241"></span></p>
<p>Lo scopo dello script è quello di verificare la lunghezza del testo inserito dall&#8217;utente e mostrare quanti caratteri abbia ancora  a disposizione.</p>
<p>Per realizzare questo utilizzeremo un textarea che ci mette a disposizione più spazio per testi lunghi ma la soluzione è ugualmente applicabili ad un campo <em>&lt;input&gt;.</em></p>
<p>Iniziamo con Jquery<em> </em>e definiamo document ready affinchè lo script inizi al caricamento completo della pagina.</p>
<pre>(document).ready(function(){});</pre>
<p>Definiamo una variabile  <em>battute </em>che definirà la lunghezza massima del testo</p>
<pre>var battute = 140;</pre>
<p>In origine l&#8217;intezione era quella di definire l&#8217;attributo <em>maxlenght </em>su &lt;<em>textarea&gt;</em> ma nelle specifiche W3C questo elemento non supporta tale attributo. Nel caso si definisse potremmo prelevare il valore con Jquery ed inserirlo nella variabile <em>battute.</em></p>
<p>In seguito definiamo il testo che comunicherà all&#8217;utente quante battute a disposizione gli restano.</p>
<pre>$('textarea').after("
&lt;p class='avviso'&gt;Hai ancora &lt;strong&gt;"+ (battute - $('textarea').val().length)+"&lt;/strong&gt; caratteri disponibili&lt;/p&gt;
");</pre>
<p>La funzione after inserisce un contenuto dopo l&#8217;elemento specificato. Nel nostro caso inseriamo un paragrafo che riporta all&#8217;utente quante battute restano. In questo modo nel caso l&#8217;utente aggiorni la pagina e rimanga del testo nel textarea, il valore sarà aggiornato al numero di caratteri corrente.</p>
<p>Ora possiamo definire un evento sul keyup che servirà per aggiornare il valore.</p>
<pre>$('textarea').keyup(function(){})</pre>
<p>Al rilascio del mouse sul textarea avverranno le azioni successivamente dichiarate.</p>
<pre>if($(this).val().length &gt; battute){
$(this).val($(this).val().substr(0, battute));
}</pre>
<p>Con questo controllo verifichiamo se il numero di battute è superiore a quello specificato, nel caso Jquery accorcia il testo inserito al numero di battute dichiarato al rilascio del pulsante.</p>
<p>Nell&#8217;ultima parte definiamo il messaggio all&#8217;utente con le battute rimanenti.</p>
<pre>$(this).parent().find('p.avviso').html(
"Hai ancora &lt;strong&gt;"+ (battute - $(this).val().length)+"&lt;/strong&gt; caratteri disponibili
");</pre>
<p>L&#8217;inserimento dell&#8217;ultimo paragrafo avviene totalmente da jquery nel caso in cui javascript fosse disattivato non ci sarebbe alcun controllo sul numero di caratteri inserito.</p>
<p>Come tutti i controlli sui form javascript  ha il solo scopo di facilitare l&#8217;inserimento e di comunicare in maniera amichevole con l&#8217;utente le specifiche d&#8217;inserimento, un controllo sui dati inseriti deve avvenire sempre lato server per ragioni di sicurezza.</p>
<p><a title="Esempio conteggio battute con jquery" href="http://www.howtoweb.it/wp-content/uploads/textarea/esempio_textarea_count.html" target="_self">VEDI ESEMPIO</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/realizzare-contatore-di-battute-in-una-textarea-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come realizzare slide animate con jquery</title>
		<link>http://www.howtoweb.it/tutorial/realizzare-slide-animate-jquery/</link>
		<comments>http://www.howtoweb.it/tutorial/realizzare-slide-animate-jquery/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 05:00:40 +0000</pubDate>
		<dc:creator>Mauro Accornero</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.howtoweb.it/?p=121</guid>
		<description><![CDATA[
Succede spesso che chi desidera un sito web voglia mostrare nelle pagine qualche animazione e richiede quindi un sito totalmente in flash. L&#8217;utilizzo di questa tecnologia va valutata attentamente  in quanto comporta dei pro e dei contro,  prima di valutare questa scelta possiamo dunque cercare delle alternative come ad esempio jquery.
Cos&#8217;è jquery?
Jquery è una libreria [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-154" title="jqueryslide" src="http://www.howtoweb.it/wp-content/uploads/2009/04/jqueryslide.jpg" alt="jqueryslide" width="580" height="200" /></p>
<p>Succede spesso che chi desidera un sito web voglia mostrare nelle pagine qualche animazione e richiede quindi un sito totalmente in flash. L&#8217;utilizzo di questa tecnologia va valutata attentamente  in quanto comporta dei pro e dei contro,  prima di valutare questa scelta possiamo dunque cercare delle alternative come ad esempio jquery.</p>
<h3>Cos&#8217;è jquery?</h3>
<p>Jquery è una libreria javascript che ci mette a disposizione una serie di funzioni che possiamo utilizzare in maniera comoda e compatibile nelle pagine web.</p>
<p>Esistono molte librerie javascript ed ognuna manifesta la propria &#8220;attitudine&#8221; verso determinate operazioni, per iniziare possiamo vedere come jquery possa tornare utile per &#8220;dare movimento&#8221; alle nostre pagine.</p>
<p>Iniziamo creando una pagina html con il seguente codice:</p>
<pre>&lt;div id="contenitore"&gt;
&lt;div id="contenuto"&gt;
&lt;div id="primo"&gt;Lorem ipsum[...]&lt;/div&gt;
&lt;div id="secondo"&gt;Lorem ipsum[...]&lt;/div&gt;
&lt;div id="terzo"&gt;Lorem ipsum[...]&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="menu"&gt;
&lt;a href="#" class="primo"&gt;Primo&lt;/a&gt;
&lt;a href="#" class="secondo"&gt;Secondo&lt;/a&gt;
&lt;a href="#" class="terzo"&gt;Terzo&lt;/a&gt;
&lt;/div&gt;</pre>
<p>La struttura è identica a quella utilizzata per un layout a tre colonne e le differenze appaiono più evidenti nel css.</p>
<pre>div#contenitore{
margin:0px auto;
width:600px;
height:300px;
background-color:#ffffff;
overflow:hidden;
}

div#contenuto{
margin:0px;
width:1800px;
height:300px;
background-color:#ffffff;
float:left;
display:inline;
}

div#contenuto div#primo{
margin:0px;
width:600px;
height:300px;
background-color:#cc0000;
float:left;display:inline;
}

div#contenuto div#secondo{
margin:0px;
width:600px;
height:300px;
background-color:#ffffff;
float:left;
display:inline;
}

div#contenuto div#terzo{
margin:0px;
width:600px;
height:300px;
background-color:#cccccc;
float:left;
display:inline;
}

div#menu{
margin:0px auto;
width:600px;
background-color:#ebebeb;
}</pre>
<p>Notiamo subito che il contenitore ha settata una proprietà overflow:hidden e la larghezza dei contenuti supera quella dell&#8217;elemento padre. Questa scelta ci serve per ottenere l&#8217;effetto slide dove al click di ogni link avremo una pagina che si muove e fa apparire la seguente.</p>
<p>Per animare le pagine è sufficiente inserire nella pagina un link alla libreria di jquery e qualche riga per definire le azioni desiderate.</p>
<pre>&lt;script type="text/javascript" src="javascript/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
$(document).ready(function(){

$("#menu a.primo").click(function (event) {
$("#contenuto").animate({ marginLeft: "0px"}, 500 );
event.preventDefault();
});

$("#menu a.secondo").click(function (event) {
$("#contenuto").animate({ marginLeft: "-600px"}, 500 );
event.preventDefault();
});

$("#menu a.terzo").click(function (event) {
$("#contenuto").animate({ marginLeft: "-1200px"}, 500 );
event.preventDefault();
});
});
&lt;/script&gt;</pre>
<p>Il codice inizia con</p>
<pre>$(document).ready(function()</pre>
<p>Questa funzione serve a capire quando la pagina è caricata ed è possibile eseguire lo script, per chi usa javascript è l&#8217;equivalente di <em>onload</em>.</p>
<pre>$("#menu a.primo").click(function (event) {</pre>
<p>Con questa funzione definiamo un evento con il quale far partire l&#8217;azione, al click del link con classe &#8220;primo&#8221; nel menu, javascript farà partire l&#8217;azione</p>
<pre>$("#contenuto").animate({ marginLeft: "0px"}, 500 );</pre>
<p>Con l&#8217;utilizzo della funzione <em>animate</em>, modifichiamo il margine sinistro del div contenuto facendolo muovere nella posizione corrispondente al contenuto desiderato. Avendo i tre div larghezza di 600px sarà sufficiente sottrarre 600px di margine al div con id contenuto per mostrare il seguente div.</p>
<p><a title="Slide orizzontale con Jquery" href="http://www.howtoweb.it/wp-content/uploads/slidejquery/orizzontale.html" target="_self">VEDI ESEMPIO</a></p>
<p>L&#8217;ultima parte del codice ha come scopo quello di inibire il link in modo che al click non il browser non vada in un altra pagina.</p>
<pre>event.preventDefault();</pre>
<p>Questo ci permette di ottenere un&#8217;alternativa accessibile al sito per coloro che hanno i javascript disabilitati, al click sul link si aprirà una pagina uguale ma con il margine sinistro di contenitore settato per la visualizzazione del contenuto desiderato.</p>
<p>E&#8217; inoltre possibile sfruttare animate per animare il contenuto sia in orizzontale che in verticale.</p>
<p><a title="Slide verticale con Jquery" href="http://www.howtoweb.it/wp-content/uploads/slidejquery/verticale.html" target="_self">VEDI ESEMPIO CON SLIDE VERTICALI</a></p>
<p><a title="Slide orizzontale con Jquery" href="http://www.howtoweb.it/wp-content/uploads/slidejquery/orizzontale.html" target="_self">VEDI ESEMPIO CON SLIDE ORIZZONTALI</a></p>
<p>Lo script  può essere notevolmente migliorato agendo sui tag ed evitando di impostare troppe classi o id, inoltre è possibile definire un ciclo per creare un array degli elementi nella pagina e applicare l&#8217;effetto ad ogni link del menu associandolo al rispettivo div con contenuto. Prossimamente vedremo come applicare queste modifiche ed utilizzare jquery per migliorare l&#8217;esperienza dell&#8217;utente sulle nostre pagine web.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.howtoweb.it/tutorial/realizzare-slide-animate-jquery/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
