 
 
 <?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>upCreative &#187; twitter bootstrap</title>
	<atom:link href="https://www.upcreative.net/tag/twitter-bootstrap/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.upcreative.net</link>
	<description>Web Design, grafica,  web application e content web marketing</description>
	<lastBuildDate>Wed, 10 Apr 2019 12:53:28 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.41</generator>
	<item>
		<title>Semplice HTML5 Mobile App con Bootstrap Ratchet e Backbone.js</title>
		<link>https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/</link>
		<comments>https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/#comments</comments>
		<pubDate>Fri, 28 Mar 2014 14:07:15 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Creare applicazioni javascript]]></category>
		<category><![CDATA[Risorse]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[backbone]]></category>
		<category><![CDATA[HTML Mobile App]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mobile app]]></category>
		<category><![CDATA[Ratchet]]></category>
		<category><![CDATA[twitter bootstrap]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=3486</guid>
		<description><![CDATA[<p>Ecco un altro tutorial su come realizzare un' HTML5 Mobile App in CSS3 e Javascript: in questo articolo ti mostro come usare la nuova versione di Ratchet (che ora fa parte di Twitter Bootstrap) insieme a Backbone.js per sviluppare una single page application. Il tutto nei tre stili differenti offerti da Ratchet, tra cui iOS e Android.</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/">Semplice HTML5 Mobile App con Bootstrap Ratchet e Backbone.js</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Nonostante non sia d&#8217;accordo con l&#8217;idea di utilizzare un framework esterno &#8220;per intero&#8221; nello sviluppo di HTML Mobile App, sono comunque convinto che attingere CSS e stili da alcuni di essi possa notevolmente <strong>incrementare la qualità del prodotto</strong> finale e <strong>velocizzare il flusso di lavoro</strong>, evitando di reinventare ogni volta la ruota.</p>
<p>In un precedente articolo avevo parlato di <a title="8 mobile framework per la realizzazione di applicazioni mobile in HTML5, CSS3 e Javascript" href="http://www.upcreative.net/8-mobile-framework-per-applicazioni-html5-css-javascript/">8 mobile framework per la realizzazione di applicazioni mobile in HTML5, CSS3 e Javascript</a>, in cui ho inserito anche <strong>Ratchet</strong>, che offre stili CSS3 molto puliti ed un markup in linea con le moderne specifiche HTML5.</p>
<p>Dopo che lo scorso mese nel blog di Twitter Bootstrap <a title="Ratchet 2.0 e Twitter Bootstrap" href="http://blog.getbootstrap.com/2014/02/25/ratchet-2/">è stato annunciato</a> che <a href="http://goratchet.com/">Ratchet 2.0</a>  farà parte d&#8217;ora in poi dell&#8217;<a href="https://github.com/twbs">organizzazione Bootstrap</a>, ho deciso di rilasciare l&#8217;esempio di una semplice <strong>HTML5 Mobile App sviluppata con <a href="http://backbonejs.org/">Backbone.js</a></strong> usando gli stili (e solo gli stili) di questa nuova versione di <strong>Ratchet</strong>, la quale quale offre<span style="line-height: 1.5em;"> 3 ottimi skin di partenza: quello <strong>di base</strong>, quello stile <strong>iOS</strong>, e quello stile <strong>Android</strong>.</span></p>
<p>Cosa desideriamo di meglio?</p>
<p style="text-align: center;"><img class="size-full wp-image-3495 aligncenter" src="http://www.upcreative.net/wp-content/uploads/2014/03/HTML5-Mobile-App-con-Bootstrap-Ratchet2-Backbone.js.jpg" alt="HTML5-Mobile-App-con-Bootstrap-Ratchet2-Backbone.js" width="690" height="400" /></p>
<p>L&#8217;intento è quello di realizzare una view iniziale con un <em>header, </em>un <em>sub-header</em> contenente un <em>input</em> di ricerca, ed il contenitore per mostrare una lista di articoli; grazie all&#8217;<em>input</em> di ricerca l&#8217;utente può filtrare i contenuti della lista.</p>
<p>L&#8217;applicazione è quindi composta da <strong>3 backbone view</strong>:</p>
<ul>
<li>la prima rappresenta la schermata principale contenente <em>header</em> e <em>sub-header</em></li>
<li>la seconda rappresenta la view della lista</li>
<li>la terza rappresenta ogni articolo che dovrà essere inserito nella lista</li>
</ul>
<p>Come nello <a title="Come creare una HTML5 Mobile App con Backbone.js" href="http://www.upcreative.net/come-creare-una-html5-mobile-app-con-backbone-js/">scorso esperimento</a>, lavoreremo sempre con <strong>model</strong> e <strong>collection</strong> per definire rispettivamente il modello di articolo e la collezione per la lista degli articoli.</p>
<p>Ecco lo schema del funzionamento dei vari componenti che formano la nostra HTML5 Mobile App:</p>
<p style="text-align: center;"><span style="color: #ff0000;"><img class="size-full wp-image-3494 aligncenter" src="http://www.upcreative.net/wp-content/uploads/2014/03/composizione-backbone-views.jpg" alt="composizione-backbone-views" width="690" height="400" /></span></p>
<p style="text-align: left;">
<hr />
<p><em>Semplice #HTML5 #MobileApp con #Bootstrap #Ratchet e #Backbonejs</em><br /><a href='https://twitter.com/share?text=Semplice+%23HTML5+%23MobileApp+con+%23Bootstrap+%23Ratchet+e+%23Backbonejs&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/' target='_blank'>Click To Tweet</a></p>
<hr />
<p>Trovi le <strong>DEMO</strong> dei 3 diversi stili ed il <strong>DOWNLOAD</strong> alla fine di questo articolo!</p>
<h3>HTML5 mobile app: impostazione del documento</h3>
<p>Come prima cosa andiamo a scaricare lo <em>zip </em>di Ratchet dal sito ed includiamo nel nostro documento solo gli stili CSS ed il <em>font</em> per le icone. Per usare lo stile base dovremo includere solo il file &#8216;<em>ratchet.css</em>&#8216; o &#8216;<em>ratchet.min.css</em>&#8216;, mentre per gli stili iOS o android dovremo aggiungere anche i rispettivi file &#8216;<em>ratchet-theme-ios.css</em>&#8216; o &#8216;<em>ratchet-theme-android.css</em>&#8216;.</p>
<p>Ecco l&#8217;esempio per l&#8217;utilizzo del tema iOS:</p><pre class="crayon-plain-tag">&lt;!-- includiamo gli stili di base di  Ratchet.css  --&gt;
&lt;link href="css/ratchet/css/ratchet.css" rel="stylesheet"&gt;

&lt;!-- includiamo gli stili iOS di  Ratchet.css  --&gt;
&lt;link href="css/ratchet/css/ratchet-theme-ios.css" rel="stylesheet"&gt;</pre><p>
Poi inseriamo nel documento le varie librerie <em>javascript</em>, prima della chiusura del tag <em>&lt;/body&gt; </em>in modo da velocizzare il caricamento della pagina:</p><pre class="crayon-plain-tag">&lt;!-- Includo gli scripts in fondo alla pagina per velocizzarne il caricamento --&gt;
&lt;script src="js/jquery-1.10.2.min.js"&gt;&lt;/script&gt;
&lt;!-- Includiamo anche underscore.js libreria a cui si appoggia backbone.js --&gt;
&lt;script src="js/underscore.js"&gt;&lt;/script&gt; 
&lt;script src="js/backbone.js"&gt;&lt;/script&gt;    
&lt;!-- il file javascript del nostro esperimento--&gt;
&lt;script src="js/demo.js"&gt;&lt;/script&gt;</pre><p>
<h2>Definizione di model e collection</h2>
<p>Vediamo come definire il model e la collection deli articoli:</p><pre class="crayon-plain-tag">//definiamo il modello di un articolo
var ArticleModel = Backbone.Model.extend({

    // all'inizializzazione di ogni modello creiamo la relativa anteprima
    initialize: function(){
        var article = this.get("article");
        this.set("preview", article.substr(0, 70)+"...");
    },

    // Attributi predefiniti per il modello, che vengono usati 
    //se non passati al momento dell'inizializzazione    
    defaults: {
        id: new Date().getUTCMilliseconds(), //impostiamo un id univoco in base alla data 
        title: "Nessun titolo",
        article: "",
        image: false,
        createdat: new Date()
    } 
});

//definiamo la collection per la lista degli articoli
var ArticleList = Backbone.Collection.extend({ 
    //Impostiamo la referenza al model per questa collection.
    model: ArticleModel,

    //funzione che restituisce il numero seriale per l'id di ogni nuovo articolo
    nextId: function() {
        if (!this.length) return 1;
        return this.first().get('test') + 1; 
    },

    //la funzione per la ricerca, che restituisce solo i models degli articoli
    //che contengono il termine ricercato nel titolo (la usaeremo per la ricerca)
    search : function(term){
        if(term == "") return this;

        var pattern = new RegExp(term,"gi");
        return _(this.filter(function(data) {
            return pattern.test(data.get("title"));
        }));
    }
});</pre><p>
<h2>Le view</h2>
<p>Ecco come si presenta la view principale:</p><pre class="crayon-plain-tag">//definiamo la view principale della nostra app
var StartView = Backbone.View.extend({

    // comunichiamo a backbone che deve inserire il markup del template di questa view all'interno di un oggetto dal tag 'section'
    tagName:  "section",

    //settiamo la classe che deve avere il tag 'section'
    className: "page-wrapper",

    //impostaiamo l'id del template da cui generare il markup di questa view
    template: "#startview-template",

    initialize: function() {

        //compiliamo il template in una variabile
        this.template = _.template($(this.template).html());

        //inizializziamo la view della lista degli articoli
        this.resultsView = new ListView({collection: this.collection});
    },

    //funzione che genera il markup di questa view
    render: function () {
        this.$el.html(this.template()); //genero l'html di questa view 
        //inserisco l'html della view dei risultati ti ricerca nella div con classe '.content' presente in questa view
        this.$('.content').append(this.resultsView.render().el); 
        return this;
    },

    // Deleghiamo gli eventi per la ricerca sull'input di testo 
    events: {
        //evento //selettore    //funzione da eseguire
        "keyup .search-term":    "search",
        "keypress .search-term": "onkeypress"
    },

    //funzione che richiama il methodo 'renderList' della view della lista ad ogni keyup sull'input di ricerca
    search: function (e) {
        var term = $(e.currentTarget).val();
        //se il termine non è vuoto allora richiamo il 'renderList' passando i dati filtrati,
        //altrimenti richiamo il render per mostrare la lista intera
        if(term!="") 
            this.resultsView.renderList(this.collection.search(term));
        else
            this.resultsView.render();
    },

    onkeypress: function (e) {
        if (e.keyCode === 13) { // preveniamo il normale evento di invio con il pulsante 'Enter'
            e.preventDefault();
        }
    }
});</pre><p>
Avremmo potuto anche &#8220;unificare&#8221; entrambe le <em>view</em> (quella principale e quella del contenitore della lista) in un unica <em>view</em>, ma lasciandole separate riusciamo ad ottenere un <strong>progetto più scalabile e dinamico</strong>: potremmo per esempio inserire nell&#8217;elemento &#8216;<em>.content</em>&#8216; della view principale qualsiasi altra <em>view,</em> oltre a quella della lista. Ciò ci permetterebbe di usare la view principale per più di uno scopo.</p>
<p>Ora vediamo la view del contenitore della lista, che sarà applicata appunto all&#8217;interno dell&#8217;elemento DOM con classe &#8216;<em>.content</em>&#8216; della view principale:</p><pre class="crayon-plain-tag">//view per la lista degli articoli (viene inizializzata all'interno della view 'StartView')
var ListView = Backbone.View.extend({

    // comunichiamo a backbone che deve inserire il markup del template di questa view all'interno di un 'ul'
    tagName:'ul',

    //questa view non ha bisogno di template, perchè viene popolata con le varie view 'ListItemView'
    //relative ad ogni model presente nella collection

    //impostiamo la classe che deve avere il contenitore di questa view
    className:'table-view',

    initialize:function () {

    },

    //funzione per mostrare la lista completa all'avvio dell'ìapplicazione
    render : function(articles){
        var _this = this;   
        this.$el.empty(); 

        //per ogni elemento della collection creiamo una nuova view
        this.collection.each(function(task){
            var view = new ListItemView({ model: task });
            _this.$el.append(view.render().el);
        });
        return this;
    },

    //funzione che viene richiamata al momento della ricerca, alla quale vengono passati i model che 
    //soddisfano la ricerca
    renderList : function(articles){
        var _this = this;        
        this.$el.empty(); 

        //anche qui per ogni model creo la relativa view
        articles.each(function(task){
            var view = new ListItemView({ model: task });
            _this.$el.append(view.render().el);
        });
        return this;
    }

});</pre><p>
Questa view si preoccupa di mostrare inizialmente tutti i <em>model</em> (quindi gli articoli) presenti all&#8217;interno della <em>collection, </em>mentre tramite il metodo &#8216;<em>renderList</em>&#8216; mostra solamente la lista di articoli che viene passata come parametro. Tale metodo viene richiamato dalla <em>view</em> principale al momento in cui si verifica l&#8217;evento &#8216;<em>keyup</em>&#8216; sull&#8217;<em>input</em> di ricerca.</p>
<p>Per mostrare i risultati al suo interno, la view della lista provvede alla creazione di una nuova view &#8216;<em>ListItemView</em>&#8216; per ogni <em>model </em>degli articoli<em>,</em> sia all&#8217;interno del metodo &#8216;<em>render</em>&#8216; che del metodo &#8216;<em>renderList</em>&#8216;:</p><pre class="crayon-plain-tag">//view per ogni elemento da inserire nella lista dei risultati degli articoli (viene inizializzata all'interno della view 'ListView')
var ListItemView = Backbone.View.extend({

    //il tag da usare per il contenitore del markup
    tagName:"li",

    //la classe da associare al contenitore del markup
    className: "table-view-cell",

    //impostaiamo l'id del template da cui generare il markup di questa view
    template: "#listitemview-template",

    initialize:function () {

        //compiliamo il template in una variabile
        this.template = _.template($(this.template).html());

        //se il model associato subisce delle modifiche allora richiamiamo il render per aggiornare il markup 
        //(non usato in questa demo)
        this.model.on("change", this.render, this);
        //se il model associato viene eliminato, allora richiamiamo la funzione 'close' che ne rimuove il 
        //relativo DOM dal documento (non usato in questa demo)
        this.model.on("destroy", this.close, this);
    },

    //genriamo il markup passando al template compilato i dai del model dell'articolo in formato JSON
    render:function () {
        this.$el.html(this.template(this.model.toJSON()));
        return this;
    },

    close: function(){
        //elimina il DOM di questa view dal documento ed annulla gli eventi applicati nella funzione 'initialize'
        this.remove();
    }

});</pre><p>
<h2>I template e la generazione del markup</h2>
<p>Come al solito utilizziamo il <strong>sistema di templating</strong> di <strong><em>underscore.js</em></strong> per la generazione del markup di ogni <em>view</em>, considerando che la <em>view</em> della lista non ha bisogno di un template, perché come abbiamo visto il <em>markup</em> da inserire al suo interno è costituito dalle varie <em>view</em> degli articoli.</p>
<p>Per avere maggiori informazioni sui sistemi di Javascript templating, ottimi per progetti di tipo &#8220;<em>Single-Page-Application</em>&#8220;, ti consiglio di leggere questo mio precedente articolo:</p>
<ul>
<li><a title="I sistemi di Javascript templating e le migliori librerie" href="http://www.upcreative.net/web-application-i-sistemi-di-javascript-templating-e-le-migliori-librerie/">I sistemi di Javascript templating e le migliori librerie</a></li>
</ul>
<p>Vediamo quindi i due template da inserire all&#8217;interno del documento:</p><pre class="crayon-plain-tag">&lt;!-- template per la view di ogni elemento all'interno della lista dei risultati di ricerca (ListItemView su demo.js) --&gt;
&lt;script type="text/template" id="listitemview-template"&gt;

	&lt;a href="#" data-id="&lt;%= id %&gt;" class="push-right"&gt;
	    &lt;span class="badge"&gt;
	    	&lt;%=createdat.getDate()%&gt; / &lt;%=createdat.getMonth()+1%&gt;
	    &lt;/span&gt;
	    &lt;%if(image){%&gt;
		&lt;img class="media-object pull-left" src="images/&lt;%=image%&gt;" /&gt;
		&lt;%}%&gt;
	    &lt;div class="media-body"&gt;
	        &lt;%= title %&gt;
	        &lt;p&gt;&lt;%= preview %&gt;&lt;/p&gt;
	    &lt;/div&gt;
	&lt;/a&gt;

&lt;/script&gt;

&lt;!-- template per la view del contenuto iniziale  (StartView su demo.js) --&gt;
&lt;script type="text/template" id="startview-template"&gt;

	&lt;header class="bar bar-nav"&gt;
		&lt;button class="btn btn-link btn-nav pull-left" onclick="window.location.href='http://www.upcreative.net/iscriviti-alla-newsletter/'"&gt;
		    Altre guide
		&lt;/button&gt;
	    &lt;h1 class="title"&gt;Ultimi Articoli&lt;/h1&gt;
	    &lt;button class="btn btn-link btn-nav pull-right" onclick="window.location.href='http://www.upCreative.net'"&gt;
		    upCreative.net
		&lt;/button&gt;
	&lt;/header&gt;
	&lt;div class="bar bar-standard bar-header-secondary"&gt;
	    &lt;input class="search-term" placeholder="Cerca articoli" type="text"/&gt;
	&lt;/div&gt;
	&lt;div class="content"&gt;&lt;/div&gt;

&lt;/script&gt;</pre><p>
<h2>Avviamo l&#8217;applicazione</h2>
<p style="text-align: center;"><img class="size-full wp-image-3497 aligncenter" src="http://www.upcreative.net/wp-content/uploads/2014/03/Avvio-HTML5-Mobile-App-Ratchdet-e-Backbonejs.jpg" alt="Avvio-HTML5-Mobile-App-Ratchdet-e-Backbonejs" width="690" height="280" /></p>
<p>Una volta impostati tutti i componenti necessari, passiamo all&#8217;avvio dell&#8217;applicazione, inizializzando una nuova <em>collection</em> per gli articoli con dei dati iniziali:</p><pre class="crayon-plain-tag">$(function(){

	//creiamo una nuova istanza per la collection degli articoli con 4 models iniziali
    var articles = new ArticleList([
        {
            title: "App su upCreative.net",
            image: "1.jpg",
            article: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
        },
        {
            title: "Secondo articolo su upCreative.net",
            image: "2.jpg",
            article: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur"
        },
        {
            title: "Articolo senza immagine 3",
            image: "3.jpg",
            article: "At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat"
        },
        {
            title: "Quarto articolo sulla  lista",
            image: "4.jpg",
            article: "Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat"
        },
        {
            title: "Quinto articolo sulla  lista",
            image: "5.jpg",
            article: "Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat"
        },
        {
            title: "Sesto articolo sulla  lista",
            image: "1.jpg",
            article: "Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat"
        },
        {
            title: "Settimo articolo sulla  lista",
            image: "2.jpg",
            article: "Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat"
        }
    ]);
    //creiamo una nuova istanza per la view iniziale 
    //associandogli la collection appena creata e popolata
    var startView = new StartView({
        collection : articles
    });
    $("body").append(startView.render().el);

});</pre><p>
<h2></h2>

		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h2>Backbone.js e Ratchet HTML5 mobile app: il risultato</h2>
<p>Vediamo il risultato live nei 3 skin differenti offerti da Ratchet:
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Stile di base</h3>
<div style="background-image: url('http://www.upcreative.net/wp-content/uploads/2014/03/iphone5.png'); background-repeat: no-repeat; margin: 0 auto; padding: 145px 0px 0px 27px; width: 375px; height: 690px;"><iframe width="320" height="550" src="http://www.upcreative.net/tutorials/28032014HTML5-Mobile-App-Ratchet2-e-Backbonejs/"></iframe></div>

		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Stile di iOS</h3>
<div style="background-image: url('http://www.upcreative.net/wp-content/uploads/2014/03/iphone5.png'); background-repeat: no-repeat; margin: 0 auto; padding: 145px 0px 0px 27px; width: 375px; height: 690px;"><iframe width="320" height="550" src="http://www.upcreative.net/tutorials/28032014HTML5-Mobile-App-Ratchet2-e-Backbonejs/index-ios.html"></iframe></div>

		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Stile di Android</h3>
<div style="background-image: url('http://www.upcreative.net/wp-content/uploads/2014/03/iphone5.png'); background-repeat: no-repeat; margin: 0 auto; padding: 145px 0px 0px 27px; width: 375px; height: 690px;"><iframe width="320" height="550" src="http://www.upcreative.net/tutorials/28032014HTML5-Mobile-App-Ratchet2-e-Backbonejs/index-android.html"></iframe></div>

		</div> 
	</div> <div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-star"></i>
						</span>
					</div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Aiutami a condividere la risorsa per ottenere il <strong>download</strong>:</p>

		</div> 
	</div> <div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-star"></i>
						</span>
					</div><div class="g-cols color_alternate w-actionbox"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Crea la tua mobile app in HTML, CSS3 e Javascript</h3>
<p>Utilizzando questa tecnica insieme a molte altre, ho realizzato più di 10 mobile app in HTML, CSS3 e Javascript (tra cui <a title="Tint HTML mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint</a> e <a title="Dieta SI o NO? HTML Mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>).</p>
<p>Se anche tu vuoi realizzare la tua applicazione in HTML, CSS e javascript da distribuire nei vari store, forse potrebbe interessarti il mio e-book <strong><a title="HTML Mobile Accelerato - Come creare una mobile app in HTML, CSS e Javacript" href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile Accelerato</a>.</strong>
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<img width="563" height="418" src="http://www.upcreative.net/wp-content/uploads/2013/11/HTML-mobile-accelerato-ebook-cover1.png" class="attachment-full" alt="HTML-mobile-accelerato-ebook-cover" />
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="widget_wysija_cont shortcode_wysija"><div id="msg-form-wysija-shortcode6ab156bb07b1c-4" class="wysija-msg ajax"></div><form id="form-wysija-shortcode6ab156bb07b1c-4" method="post" action="#wysija" class="widget_wysija shortcode_wysija">
<p class="wysija-paragraph">
    
    
    	<input type="text" name="wysija[user][email]" class="wysija-input validate[required,custom[email]]" title="Inserisci la tua mail" placeholder="Inserisci la tua mail" value="" />
    
    
    
    <span class="abs-req">
        <input type="text" name="wysija[user][abs][email]" class="wysija-input validated[abs][email]" value="" />
    </span>
    
</p>
<input class="wysija-submit wysija-submit-field" type="submit" value="Tienimi aggiornato/a" />

    <input type="hidden" name="form_id" value="4" />
    <input type="hidden" name="action" value="save" />
    <input type="hidden" name="controller" value="subscribers" />
    <input type="hidden" value="1" name="wysija-page" />

    
        <input type="hidden" name="wysija[user_list][list_ids]" value="4,1" />
    
 </form></div>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/">Semplice HTML5 Mobile App con Bootstrap Ratchet e Backbone.js</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/smplice-html5-mobile-app-bootstrap-ratchet-backbone-js/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Twitter Bootstrap search box responsive con animazioni CSS3</title>
		<link>https://www.upcreative.net/twitter-bootstrap-search-box-responsive/</link>
		<comments>https://www.upcreative.net/twitter-bootstrap-search-box-responsive/#comments</comments>
		<pubDate>Wed, 05 Feb 2014 10:03:15 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Coding Gallery]]></category>
		<category><![CDATA[Risorse]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[animazioni]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Modernizr]]></category>
		<category><![CDATA[Search box]]></category>
		<category><![CDATA[twitter bootstrap]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=3215</guid>
		<description><![CDATA[<p>Tutorial su come rendere originale il proprio sito web sviluppato con Twitter Bootstrap, realizzando un'esperienza di ricerca originale ed accattivante, il tutto utilizzando animazioni CSS3 fluide e performanti. Il risultato è reso compatibile con tutti i tipi di browser grazie alla tecnica del progressive enhancement (miglioramento progressivo).</p>
<p>The post <a rel="nofollow" href="https://www.upcreative.net/twitter-bootstrap-search-box-responsive/">Twitter Bootstrap search box responsive con animazioni CSS3</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<a title="Twitter Bootstrap - Framework Javascript e CSS per la realizzazione di siti web e applicazioni" href="http://getbootstrap.com"><em>Twitter Bootstrap</em></a> rappresenta un&#8217;ottima risorsa per tutti coloro che operano nell&#8217;ambito del web design, ed in rete si possono trovare migliaia di siti web e applicazioni realizzate con questo utilissimo framework. Se però da una parte fa senz&#8217;altro comodo potersi appoggiare ad un sistema solido ed aggiornato, crossbrowser e responsive, dall&#8217;altra è altrettanto vero che, in un mare di progetti &#8220;<em>Bootstrap-based</em>&#8220;, diventa  necessario distinguersi dagli altri.</p>
<p>Uno dei modi più utili per farlo è quello di implementare delle <strong>funzionalità originali sui componenti dell&#8217;interfaccia.</strong> In un precedente articolo ti ho mostrato come realizzare uno <strong>slide menu originale con animazioni CSS3</strong>, con tanto di progressive enhancement, ovvero quella tecnica che permette di applicare alle funzionalità dei componenti un <strong>miglioramento progressivo a seconda del browser, tramite CSS3:</strong></p>
<ul>
<li><a title="CSS3 slide panel: tutorial su come realizzare un menu stile mobile" href="http://www.upcreative.net/css3-slide-panel-tutorial-creare-menu-mobile/">CSS3 slide panel: tutorial su come realizzare un menu stile mobile</a></li>
</ul>
<h2>Twitter Bootstrap Search Box</h2>
<p>In questo articolo ti voglio mostrare come rendere <strong>originale</strong> ed <strong>accattivante</strong> l&#8217;<strong>esperienza di ricerca</strong> all&#8217;interno di un sito web o applicazione, sia essa desktop o mobile. Ciò che infatti realizzeremo è un search box con effetto <em>slide-down, </em>la cui caratteristica principale è quella di essere <strong>totalmente responsive</strong>, in quanto ci serviremo di Twitter Bootstrap.
		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element">
		<div class="wpb_wrapper">
			
			<img width="690" height="400" src="http://www.upcreative.net/wp-content/uploads/2014/02/twitter-bootstrap-search-box-responsive.jpg" class="attachment-full" alt="twitter-bootstrap-search-box-responsive" />
		</div> 
	</div> <div class="g-cols"><div class="one-half"><div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/05022014Twitter-Bootstrap-search-box-responsive/"class="g-btn type_primary size_big"><span>Demo</span></a></div>
</div><div class="one-half"><div class="wpb_button align_center"><a href="http://www.upcreative.net/download/3242/"class="g-btn type_primary size_big"><span>Download</span></a></div>
</div></div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<p>Il risultato dell&#8217;esperimento potrà essere pertanto implementato anche su applicazioni Mobile, anche per il fatto che utilizzeremo delle <strong>animazioni CSS3 altamente performanti</strong> per i dispositivi che le supportano, mentre ricorreremo a quelle meno performanti nel caso di browser più datati.<em><br />
</em></p>
<hr />
<p><em>Realizzare un search box #crossbrowser e #responsive con #TwitterBootstrap #webdesign</em><br /><a href='https://twitter.com/share?text=Realizzare+un+search+box+%23crossbrowser+e+%23responsive+con+%23TwitterBootstrap+%23webdesign&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/twitter-bootstrap-search-box-responsive/' target='_blank'>Click To Tweet</a></p>
<hr />
<p>L&#8217;obiettivo è quello di far comparire dall&#8217;alto il campo di ricerca nel momento in cui viene cliccata l&#8217;apposita icona, in modo da coprire completamente la barra di navigazione. Quando si verifica l&#8217;evento &#8220;<em>blur</em>&#8221; del campo richiameremo invece l&#8217;effetto contrario, quello per nascondere il form.</p>
<p><em>A questo proposito ti consiglio di leggere:</em></p>
<ul>
<li><em><a title="Performance CSS3: consigli per ottimizzare le prestazioni" href="http://www.upcreative.net/performance-css3-consigli-per-ottimizzare-le-animazioni/">Performance CSS3: consigli per ottimizzare le prestazioni</a></em></li>
<li><em><a title="Web e mobile app fluide con Hardware Acceleration" href="http://www.upcreative.net/web-e-mobile-app-fluide-con-layer-e-hardware-acceleration/">Web e mobile app fluide con Hardware Acceleration</a></em></li>
</ul>
<h2>Il markup HTML</h2>
<p>Il codice HTML utilizzato per i vari elementi DOM è relativamente semplice; in particolare non facciamo altro che prelevarlo dalla documentazione del sito ufficiale di Twitter Bootstrap in modo da ricreare la <em>navbar</em>, applicando qualche piccola modifica:</p><pre class="crayon-plain-tag">&lt;!-- menu di navigazione --&gt;

&lt;nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"&gt;	

  &lt;div class="container-fluid"&gt;
    &lt;div class="navbar-header"&gt;        

      &lt;button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"&gt;
        &lt;span class="sr-only"&gt;Toggle navigation&lt;/span&gt;
        &lt;span class="icon-bar"&gt;&lt;/span&gt;
        &lt;span class="icon-bar"&gt;&lt;/span&gt;
        &lt;span class="icon-bar"&gt;&lt;/span&gt;
      &lt;/button&gt;

      &lt;a class="navbar-brand" href="http://www.upcreative.net"&gt;upCreative.net&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="navbar-collapse collapse"&gt;
      &lt;ul class="nav navbar-nav navbar-right"&gt;
        &lt;li&gt;&lt;a href="#"&gt;Dashboard&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#"&gt;Settings&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#"&gt;Profile&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;
        	&lt;a href="#" id="search-button"&gt;
            	&lt;i class="fa fa-search fa-lg"&gt;&lt;/i&gt; 
	        &lt;span&gt;Cerca&lt;/span&gt;
        	&lt;/a&gt;
        &lt;/li&gt;
      &lt;/ul&gt;          
    &lt;/div&gt;
  &lt;/div&gt;

  &lt;!-- il form di ricerca, inizialmente nascosto --&gt;

  &lt;form class="navbar-form" action="#"&gt;
    &lt;input type="search" placeholder="Cerca..."&gt;
    &lt;a href="#" id="close-button"&gt;&lt;i class="fa fa-times fa-lg"&gt;&lt;/i&gt;&lt;/a&gt;
  &lt;/form&gt;
&lt;/nav&gt;</pre><p>
Ci serviamo quindi del tag <em>&lt;article&gt; </em>per rappresentare il contenuto della pagina (o applicazione):</p><pre class="crayon-plain-tag">&lt;!-- Contenuto pagina web --&gt; 

&lt;article class="text-center"&gt;

	&lt;h1&gt;Twitter Bootstrap search box con animazioni CSS3&lt;/h1&gt;	

	&lt;a href="http://www.upcreative.net/" class="btn btn-primary btn-lg"&gt;Vai all'articolo del tutorial &lt;i class="fa fa-chevron-right"&gt;&lt;/i&gt;&lt;/a&gt;

	&lt;p&gt;
		Guarda la demo in un dispositivo mobile per poter poter visualizzare al meglio le 
		performance raggiungibili con la tecnica dell'&lt;strong&gt;accelerazione hardware&lt;/strong&gt;.
	&lt;/p&gt;

	&lt;p style="margin-top:30px;"&gt;
		oppure consulta altri tutorial su upCreative.net:
	&lt;/p&gt;

	&lt;a href="http://www.upcreative.net/tutorial-css3-e-javascript-per-web-designers/" class="btn btn-primary"&gt;&lt;i class="fa fa-globe"&gt;&lt;/i&gt; upCreative.net&lt;/a&gt;

&lt;/article&gt;</pre><p>
Per quanto riguarda le icone di ricerca e di chiusura abbiamo usato quelle del framework <em><a title="Fontawesome - l'icon font creato appositamente per Twitter Bootstrap" href="http://fontawesome.io">Fontawesome</a></em>, <em>icon-font</em> appositamente creato per Twitter Bootstrap.</p>
<h2>Il codice CSS3</h2>
<p>Vediamo ora il codice per il foglio di stile:</p><pre class="crayon-plain-tag">/* stili del form della navbar */
.navbar-form{

	/*
		posizioniamo il form di ricerca in modo assoluto ed impostiamo
		larghezza ed altezza al 100% in modo da coprire completamente la 
		navbar che lo contiente		
	*/
	position: absolute;
	padding:0;
	left:0;
	top:0;
	width:100%;
	height:70px;
	margin: 0;
}</pre><p>
Abbiamo impostato la grandezza del form che contiene il campo di ricerca (classe <em>.navbar-form</em>) in modo che avesse le stesse dimensioni della <em>navbar,</em> per far sì che quest&#8217;ultima venga interamente coperta al momento dell&#8217;azione di ricerca.</p>
<p>Aggiungiamo ora la definizione delle modalità di animazione:</p><pre class="crayon-plain-tag">.navbar-form{	
	/* 
		impostiamo ad all l"attributo scantenante" per l'effetto 
		di transizione, in modo da scatenarlo sia se viene modificato il 
		valore della proprietà 'top', che quello della proprietà 'transorm'.
		Grazie alla proprietà 'transform sarà' possibile rendere l'effetto 
		fluido e performante anche per i dispositivi mobile, 
		forzando la creazione dei layers grafici.
	*/
	-webkit-transition: all .3s;
	   -moz-transition: all .3s;
	   	-ms-transition: all .3s;
		 -o-transition: all .3s;
		 	transition: all .3s;

	/*
		inizialmente nascondiamo fuori dallo schermo il form di ricerca, 
		in modo che sia traslato negativamente in verticale dello stesso
		numero di pixek che compone l'altezza della navbar 
	*/
	-webkit-transform: translate3d(0,-70px,0);
	   -moz-transform: translate3d(0,-70px,0);
	    -ms-transform: translate3d(0,-70px,0);
	     -o-transform: translate3d(0,-70px,0);
	        transform: translate3d(0,-70px,0);
}</pre><p>
Aggiungiamo una piccola porzione di codice per &#8220;ripiegare&#8221; sull&#8217;utilizzo della proprietà &#8220;<em>top</em>&#8220;, al fine di scatenare l&#8217;effetto di entrata nel caso in cui il browser del visitatore non supporti la proprietà &#8220;<i>translate</i>&#8221; (poco performante perché implica la ripetizione di gran parte del processo di rendering):</p><pre class="crayon-plain-tag">/*
se il browser non supporta la proprietà translate, allora impostiamo il
valore top negativo, dello stesso numero di pixel dell'altezza della navbar
*/
body.without-translate .navbar-form{
    top: -70px;
}</pre><p>
La classe .<em>with-translate</em> verrà aggiunta al <em>body </em>della pagina utilizzando <em><a title="Modernizr - Libreria per determinare le funzionalità HTML5 e CSS3 di ogni dispositivo" href="http://modernizr.com">Modernizr</a>; </em>lo vedremo analizzando il codice Javascript.</p>
<p>Passiamo quindi a definire gli stili per le proprietà grafiche dell&#8217;input di ricerca e quelle per il posizionamento dell&#8217;icona di chiusura:</p><pre class="crayon-plain-tag">/*
	impostaiamo gli stili per l'elemento input. In particolare facciamo in modo 
	che il campo di testo abbia le stesse dimensioni dell'elemento form che lo contiene
*/
.navbar-form input[type='search']{
	outline: 0;	
	width: 100%;
	height:100%;
	font-size: 24px;
	color:#F4F4F4;
	-moz-box-sizing: border-box;
	box-sizing: border-box;	
	padding:11px 15px;
	padding-right: 35px; /*aumentiamo il padding per "fare spazio" al pulsante di chiusura del form	*/
	background: #000;
	border:0;	
}

/*
	impostiamo in modo assoluto il pulsante di chiusura del 
	form di ricerca in modo che sia posizionato in fondo a destra rispetto 
	al conteitore e che stia sopra il campo di ricerca
*/

#close-button{
	position: absolute;
	right:18px;
	top:24px;
	color: #FFF;
}</pre><p>
Infine facciamo in modo che, nel momento in cui viene aggiunta la classe <em>.open </em>al form di ricerca, siano modificate le &#8220;proprietà scatenanti&#8221; che avviano l&#8217;effetto, secondo quanto definito precedentemente:</p><pre class="crayon-plain-tag">/*
definiamo la classe per la visualizzazione del form di ricerca	
*/
.navbar-form.open{	
	/*
	nel momento in cui questa classe viene aggiunta al form,
	andiamo a modifica l'attributo scatenante definito in precedenza (transform)
	per avviare l'aniamzione
	*/	
	-webkit-transform: translate3d(0,0,0);
	   -moz-transform: translate3d(0,0,0);
	    -ms-transform: translate3d(0,0,0);
	     -o-transform: translate3d(0,0,0);
	        transform: translate3d(0,0,0);

}

/*
se il browser non supporta la proprietà translate, allora 
attiviamo l'effetto agendo sulla proprietà 'top'.
*/

body.without-translate .navbar-form.open {
    top: 0;
}</pre><p>
&nbsp;</p>
<h2>Il codice Javascript</h2>
<p>Come al solito definiamo subito, tramite Modernizr,  il nome dell&#8217;<strong>evento di fine <em>transition</em></strong> in modo da eseguire la nostra funzione javascript nel momento in cui l&#8217;animazione di apertura giunge al termine:</p><pre class="crayon-plain-tag">/* Grazie a modernizr riprendo il nome dell'evento di fine transizione, che cambia a seconda del browser */

var endTransitionName = {
	'WebkitTransition' : 'webkitTransitionEnd',
	'OTransition' : 'oTransitionEnd',
	'msTransition' : 'MSTransitionEnd',
	'transition' : 'transitionend'
};
var transitionEventName = endTransitionName[ Modernizr.prefixed( 'transition' ) ];</pre><p>
<em>Per avere maggiori informazioni sulla gestione degli eventi di effetti realizzati tramite le proprietà transition e animation, ti consiglio di leggere questo articolo:</em></p>
<ul>
<li><em><a title="Modernizr e CSS3: gestire gli eventi di fine animazione e transizione con javascript" href="http://www.upcreative.net/modernizr-e-css3-gestire-eventi-animazioni-e-transizioni/">Modernizr e CSS3: gestire gli eventi di fine animazione e transizione con javascript</a></em></li>
</ul>
<p>Aggiungendo ora la classe <em>.without-translate </em>al <em>body</em>, nel caso in cui non sia presente il supporto per la proprietà <em>transform:</em></p><pre class="crayon-plain-tag">/* 
    grazie a modernizr, controllando le classi del tag HTML 
    possiamo sapere se il browser supporta determinate funzionalità        
*/
var supportCssTransforms = $("html").hasClass("csstransforms3d"),
    supportCssTransitions = $("html").hasClass("csstransitions");

/*
    se il browser non supporta la prop. 'transform' aggiungiamo la classe 'without-translate' al body, 
    in modo da poter differenziare la modalità d'effetto tramite CSS
*/
if(!supportCssTransforms){
    $("body").addClass("without-translate");
}</pre><p>
Infine gestiamo gli eventi di <em>click</em> e <em>blur  </em>per pulsanti e campo di ricerca:</p><pre class="crayon-plain-tag">/*
	definiamo gli elementi sui quali agiremo
*/
var navForm = $("nav .navbar-form"), 
	input = navForm.find("input[type='search']"),
	openBnt = $("#search-button"),
	closeBtn = $("#close-button");

openBnt.on("click", function(e){
	e.preventDefault();
	//alla fine dell'effetto di transizione richiamiamo il focus sul campo di testo		    	
	navForm.addClass("open").one(transitionEventName, function(){ 	   
    	   input.focus();
	});
        /* 
        se il browser non supporta le transition CSS3 allora l'evento di fine animazione non si verificherà, 
        pertanto richiameremo il focus sul campo di ricerca subito dopo aver aggiunto 
        la classe 'open' al form
        */
        if(!supportCssTransitions)
	   input.focus();

});

/*
	nel momento in cui si verifica l'evento blur, rimuoviamo la classe "open"
	dal form in modo da scatenare l'animazione con effetto contrario (quella
	che nasconde appunto il form)
*/	    	
input.on("blur", function(){ 		    	
	navForm.removeClass("open");
});

/*
	al click dell'icona di chiusura forziamo il blur del campo per scatenare il
	conseguente effetto di chiusura
*/
closeBtn.on("click", function(e){
	e.preventDefault(); 		    	
	input.trigger("blur");
});</pre><p>
Ed ecco finalmente il risultato finale:</p>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element">
		<div class="wpb_wrapper">
			
			<img width="690" height="400" src="http://www.upcreative.net/wp-content/uploads/2014/02/twitter-bootstrap-search-box-responsive.jpg" class="attachment-full" alt="twitter-bootstrap-search-box-responsive" />
		</div> 
	</div> <div class="g-cols"><div class="one-half"><div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/05022014Twitter-Bootstrap-search-box-responsive/"class="g-btn type_primary size_big"><span>Demo</span></a></div>
</div><div class="one-half"><div class="wpb_button align_center"><a href="http://www.upcreative.net/download/3242/"class="g-btn type_primary size_big"><span>Download</span></a></div>
</div></div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h2>Conclusioni</h2>
<p>Con questo tutorial spero di averti dimostrato che servirsi di <strong>animazioni CSS3 performanti</strong> è un&#8217;ottimo metodo per rendere originale un sito web e distinguerlo dagli altri, oppure per implementare dei <strong>componenti fluidi</strong> nelle proprie applicazioni mobile sviluppate in HTML5, CSS3 e Javascript. Così facendo possiamo realizzare prodotti le cui prestazioni si avvicinano il più possibile a quelle di applicazioni native.</p>
<hr />
<p><em>Realizzare un search box #crossbrowser e #responsive con #TwitterBootstrap #webdesign</em><br /><a href='https://twitter.com/share?text=Realizzare+un+search+box+%23crossbrowser+e+%23responsive+con+%23TwitterBootstrap+%23webdesign&#038;via=upCreativeIta&#038;related=upCreativeIta&#038;url=https://www.upcreative.net/twitter-bootstrap-search-box-responsive/' target='_blank'>Click To Tweet</a></p>
<hr />
<p>L&#8217;impiego della tecnica del <strong>miglioramento progressivo</strong> permette inoltre di applicare il nostro effetto a <strong>tutti i tipi di browser</strong>, spaziando da quel più vecchi quelli a quelli di ultima generazione.</p>
<p>E tu? Utilizzerai questa tecnica nei tuoi progetti? Lascia pure un tuo commento per qualunque dubbio o perplessità, o per suggerire delle funzionalità aggiuntive.
		</div> 
	</div> <div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div><div class="g-cols color_alternate w-actionbox"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Crea la tua mobile app in HTML, CSS3 e Javascript</h3>
<p>Utilizzando questa tecnica insieme a molte altre, ho realizzato più di 10 mobile app in HTML, CSS3 e Javascript (tra cui <a title="Tint HTML mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint</a> e <a title="Dieta SI o NO? HTML Mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>).</p>
<p>Se anche tu vuoi realizzare la tua applicazione in HTML, CSS e javascript da distribuire nei vari store, forse potrebbe interessarti il mio e-book <strong><a title="HTML Mobile Accelerato - Come creare una mobile app in HTML, CSS e Javacript" href="http://www.upcreative.net/html-mobile-accelerato/">HTML Mobile Accelerato</a>.</strong>
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_single_image wpb_content_element">
		<div class="wpb_wrapper">
			
			<a href="http://www.upcreative.net/html-mobile-accelerato/"><img width="563" height="418" src="http://www.upcreative.net/wp-content/uploads/2013/11/HTML-mobile-accelerato-ebook-cover1.png" class="attachment-full" alt="HTML-mobile-accelerato-ebook-cover" /></a>
		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="widget_wysija_cont shortcode_wysija"><div id="msg-form-wysija-shortcode6ab156bb26d41-4" class="wysija-msg ajax"></div><form id="form-wysija-shortcode6ab156bb26d41-4" method="post" action="#wysija" class="widget_wysija shortcode_wysija">
<p class="wysija-paragraph">
    
    
    	<input type="text" name="wysija[user][email]" class="wysija-input validate[required,custom[email]]" title="Inserisci la tua mail" placeholder="Inserisci la tua mail" value="" />
    
    
    
    <span class="abs-req">
        <input type="text" name="wysija[user][abs][email]" class="wysija-input validated[abs][email]" value="" />
    </span>
    
</p>
<input class="wysija-submit wysija-submit-field" type="submit" value="Tienimi aggiornato/a" />

    <input type="hidden" name="form_id" value="4" />
    <input type="hidden" name="action" value="save" />
    <input type="hidden" name="controller" value="subscribers" />
    <input type="hidden" value="1" name="wysija-page" />

    
        <input type="hidden" name="wysija[user_list][list_ids]" value="4,1" />
    
 </form></div>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/twitter-bootstrap-search-box-responsive/">Twitter Bootstrap search box responsive con animazioni CSS3</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/twitter-bootstrap-search-box-responsive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Bootstrap 3 autocomplete &#8211; come realizzarlo con JQuery UI</title>
		<link>https://www.upcreative.net/twitter-bootstrap-3-autocomplete-con-jquery-ui/</link>
		<comments>https://www.upcreative.net/twitter-bootstrap-3-autocomplete-con-jquery-ui/#comments</comments>
		<pubDate>Mon, 09 Sep 2013 17:05:39 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[autocomplete]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[stili]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[twitter bootstrap]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=1609</guid>
		<description><![CDATA[<p>The post <a rel="nofollow" href="https://www.upcreative.net/twitter-bootstrap-3-autocomplete-con-jquery-ui/">Twitter Bootstrap 3 autocomplete &#8211; come realizzarlo con JQuery UI</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="l-submain"><div class="l-submain-h g-html i-cf"><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Tutti i designer e gli sviluppatori web hanno utilizzato o perlomeno conoscono gli utilissimi widget di <a title="jQuery UI" href="http://jqueryui.com">jQuery UI</a>. In questo articolo voglio parlarvi di come personalizzare gli stili ed il markup del widget <a title="jQuery UI automplete widget" href="http://jqueryui.com/autocomplete/">autocomplete</a>, che pur essendo uno dei plugin più completi, presenta un aspetto al quanto obsoleto. Cercheremo in particolare di realizzare un <a title="Twitter Bootstrap" href="http://getbootstrap.com">twitter bootstrap 3 autocomplete</a> servendoci del widget di jQuery UI.</p>
<p><img class="alignnone  wp-image-1645" src="http://www.upcreative.net/wp-content/uploads/2013/09/Bootstrap3-jQUeryUI-e1378745985638.jpg" alt="Bootstrap3-jQUeryUI" width="100%" height="auto" /></p>

		</div> 
	</div> </div></div><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/09092013-jquery-autcomplete-bootstrap/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-eye-open"></i>Demo</span></a></div>
 
		</div> 
	</div> </div></div><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Aiutami a condividere la risorsa per ottenere il <strong>download</strong>:</p>

		</div> 
	</div> </div></div><div class="g-cols"><div class="full-width"><div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5>Prima di iniziare</h5>
<p>In alcuni progetti, soprattutto per quelli in cui alcune risorse come il tempo o anche il budget del cliente vengono a mancare, può tornare molto utile servirsi di <strong>temi twitter bootstrap 3 premium</strong>. A tal proposito te ne voglio proporre alcuni di alta qualità che io stesso ho usato per alcuni miei lavori:
		</div> 
	</div> <div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/rioleme-responsive-multipurpose-wordpress-theme/7041517?ref=Colddesign">RioLeme &#8211; Responsive Multi-Purpose WordPress Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/rioleme-responsive-multipurpose-wordpress-theme/7041517?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/rioleme-preview-image-590x300.__large_preview.jpg" class="attachment-full" alt="rioleme-preview-image-590x300.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/alamak-responsive-one-page-portfolio-theme/6502151?ref=Colddesign">Alamak &#8211; Responsive One Page Portfolio Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/alamak-responsive-one-page-portfolio-theme/6502151?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/alamak-preview.__large_preview.jpg" class="attachment-full" alt="alamak-preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/moose-multipurpose-responsive-wordpress-theme/6928835?ref=Colddesign">Moose &#8211; Multipurpose Responsive WordPress Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/moose-multipurpose-responsive-wordpress-theme/6928835?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/preview.__large_preview.png" class="attachment-full" alt="preview.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/-slowave-multipurpose-responsive-wordpress-theme/6870792?ref=Colddesign">Slowave &#8211; Multipurpose Responsive WordPress Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/-slowave-multipurpose-responsive-wordpress-theme/6870792?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/1.__large_preview.png" class="attachment-full" alt="1.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/floyd-one-page-parallax-wordpress-theme/7081098?ref=Colddesign">Floyd &#8211; One Page Parallax WordPress Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/floyd-one-page-parallax-wordpress-theme/7081098?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/01_preview.__large_preview.png" class="attachment-full" alt="01_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/nativechurch-multi-purpose-wordpress-theme/7082446?ref=Colddesign">NativeChurch &#8211; Multi Purpose WordPress Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/nativechurch-multi-purpose-wordpress-theme/7082446?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/preview_image1_large_preview.__large_preview.jpg" class="attachment-full" alt="preview_image1_large_preview.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div></div></div><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h1>Twitter Bootstrap 3 autocomplete: iniziamo!</h1>
<h3>Cosa includere nel documento</h3>
<p>Come prima cosa andremo ad inserire nel nostro documento html le librerie css e javascript necessarie:</p>
<p><strong>CSS:</strong></p>
<ul>
<li>bootstrap.css</li>
<li>demo.css (il nostro foglio di stile)</li>
</ul>
<p><strong>FILE JS:</strong></p>
<ul>
<li>jquery.js (versione 1.10.2)</li>
<li>jquery-ui.js (per l&#8217;autocomplete)</li>
<li>demo.js (il nostro file javascript)</li>
</ul>
<p>Per questo esempio ho escluso tutti i file js del Bootstrap e qualunque tema css del jQuery UI, in quanto il nostro intento è quello di combinare appunto gli stili del primo con le funzionalità del secondo; tuttavia è possibile raggiungere l&#8217;obiettivo anche includendo le due librerie al completo.</p>
<p>I file &#8220;demo.css&#8221; e &#8220;demo.js&#8221; sono rispettivamente il foglio di stile e il javascript del nostro esempio.</p>
<h3>Il markup HTML</h3>
<pre class="crayon-plain-tag">&lt;div class="row"&gt;

	    &lt;div class="col-sm-6 col-md-6 col-md-offset-3"&gt;

		    &lt;form id="search-form" role="form"&gt;
			  &lt;div class="form-group"&gt;
			    &lt;label for="spotlight"&gt;Cerca&lt;/label&gt;
			    &lt;input type="email" class="form-control" id="spotlight" placeholder="Cerca" /&gt;
			  &lt;/div&gt;

		    &lt;/form&gt;

	    &lt;/div&gt;	    

    &lt;/div&gt;</pre>
&nbsp;</p>
<p>Aabbiamo usato un input con id &#8220;spotlight&#8221; all&#8217;interno di un form, il tutto contenuto nella colonna di una griglia Bootstrap, con offset 3 e larghezza 6: il risultato è un campo di testo responsive centrato nel mezzo del documento, sia per dispositivi desktop che  mobile.</p>
<h3>Javascript: demo.js</h3>
<pre class="crayon-plain-tag">$(function() {

    var availableTags = [
      "ActionScript",
      "AppleScript",
      "AppleScript2",
      "AppleScript3",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",
      "Groovy",
      "Haskell",
      "Java",
      "JavaScript",
      "Lisp",
      "Perl",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];

    $("#spotlight").autocomplete({
		source: availableTags,
		appendTo: $("form:first")
	});

	$("#spotlight").data( "ui-autocomplete" )._renderMenu = function( ul, items ) {
		var that = this;		
		ul.attr("class", "nav nav-pills nav-stacked");
		$.each( items, function( index, item ) {
			that._renderItemData( ul, item );
		});
	};	    

});</pre>
&nbsp;</p>
<p>Prima di tutto abbiamo definito l&#8217;array dei termini possibili di ricerca, poi abbiamo inizializzato il campo con id &#8220;spotlight&#8221; per l&#8217;autocomplete del jQuery UI: qui si noti in particolare come sia stato necessario &#8220;appendere&#8221; il menù creato dal plugin al form tramite il parametro &#8220;appendTo&#8221;.</p>
<p>Il passo successivo è stato quello di modificare la funzione &#8220;<strong>_renderMenu</strong>&#8221; del plugin, ovvero quella funzione che ha il compito di inserire i vari risultati di ricerca alo&#8217;interno del menù sottoforma di entità HTML. Il procedimento è molto semplice: alla funzione vengono passati come parametri l&#8217;elemento del menu che sarà appeso al form, e gli elementi del risultato della ricerca in formato JSON. All&#8217;interno di un loop si scorrono poi tutti i risultati e viene richiamata la funzione &#8220;<strong>_renderItemData</strong>&#8221; che ha il compito di creare per ogni risultato l&#8217;elemento HTML e di aggiungerlo alla lista. Prima del loop noi sostituiamo semplicemente la classe del menu del jQuery UI con quelle del Twitter Bootstrap.</p>
<h3>Gli stili CSS: demo.css</h3>
<pre class="crayon-plain-tag">form#search-form{
  position: relative;
}

form#search-form ul{
	  position: absolute;
	  top: 0;
	  left: 0; 
	  width: 100%;
	  max-height: 200px;
	  overflow: auto;	  
	  z-index: 1;	  
	  border:1px solid #DDDDDD;
	  border-radius: 6px;	  
  }

span.ui-helper-hidden-accessible{
  display: none !important;
}

.ui-state-focus {
	 color: #ffffff;
	 background-color: #428bca;
}</pre>
&nbsp;</p>
<p>Anche per quanto riguarda gli stili il discorso non è molto complicato: per prima cosa attribuiamo il &#8220;position:relative&#8221; al form, di modo ché il menù dei risultati venga riposizionato in base al primo (è per questo che precedentemente lo abbiamo inserito tramite javascript al suo interno), poi impostiamo gli attributi del menu stesso, il quale avrà quindi una &#8220;position:absolute&#8221;.</p>
<p>Attribuiamo poi al menù una altezza massima di 200px con overflow:auto per far scorrere i risultati con una scrollbar, evitando di farli uscire dallo schermo, qualora fossero troppo numerosi.</p>
<p>Fatto ciò nascondiamo la classe helper del jQuery UI, ed impostiamo lo stile del risultato della lista su cui scaturisce il focus (<em>questo è un hack necessario perché purtroppo non è possibile modificare con poche righe di codice il markup e le classi di ogni singolo elemento della lista dei risultati. Per questo si è scelto di prendere la strada &#8220;più leggera</em>&#8220;).</p>
<h2>Twitter bootstrap 3 autocomplete: risultato finale</h2>

		</div> 
	</div> </div></div><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/09092013-jquery-autcomplete-bootstrap/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-eye-open"></i>Demo</span></a></div>
 
		</div> 
	</div> </div></div><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			Aiutami a condividere la risorsa per ottenere il <strong>download</strong>:</p>

		</div> 
	</div> </div></div><div class="g-cols"><div class="full-width"><div class="g-hr">
						<span class="g-hr-h">
							<i class="fa fa-chevron-down"></i>
						</span>
					</div>
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5>Temi Twitter Bootstrap 3 premium</h5>

		</div> 
	</div> <div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/rioleme-responsive-multipurpose-wordpress-theme/7041517?ref=Colddesign">RioLeme &#8211; Responsive Multi-Purpose WordPress Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/rioleme-responsive-multipurpose-wordpress-theme/7041517?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/rioleme-preview-image-590x300.__large_preview.jpg" class="attachment-full" alt="rioleme-preview-image-590x300.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/alamak-responsive-one-page-portfolio-theme/6502151?ref=Colddesign">Alamak &#8211; Responsive One Page Portfolio Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/alamak-responsive-one-page-portfolio-theme/6502151?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/alamak-preview.__large_preview.jpg" class="attachment-full" alt="alamak-preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/moose-multipurpose-responsive-wordpress-theme/6928835?ref=Colddesign">Moose &#8211; Multipurpose Responsive WordPress Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/moose-multipurpose-responsive-wordpress-theme/6928835?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/preview.__large_preview.png" class="attachment-full" alt="preview.__large_preview" /></a>
		</div> 
	</div> </div></div><div class="g-cols"><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/-slowave-multipurpose-responsive-wordpress-theme/6870792?ref=Colddesign">Slowave &#8211; Multipurpose Responsive WordPress Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/-slowave-multipurpose-responsive-wordpress-theme/6870792?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/1.__large_preview.png" class="attachment-full" alt="1.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/floyd-one-page-parallax-wordpress-theme/7081098?ref=Colddesign">Floyd &#8211; One Page Parallax WordPress Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/floyd-one-page-parallax-wordpress-theme/7081098?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/01_preview.__large_preview.png" class="attachment-full" alt="01_preview.__large_preview" /></a>
		</div> 
	</div> </div><div class="one-third">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h5><a href="http://themeforest.net/item/nativechurch-multi-purpose-wordpress-theme/7082446?ref=Colddesign">NativeChurch &#8211; Multi Purpose WordPress Theme</a></h5>

		</div> 
	</div> 
	<div class="wpb_single_image wpb_content_element align_center">
		<div class="wpb_wrapper">
			
			<a href="http://themeforest.net/item/nativechurch-multi-purpose-wordpress-theme/7082446?ref=Colddesign"><img width="590" height="300" src="http://www.upcreative.net/wp-content/uploads/2013/09/preview_image1_large_preview.__large_preview.jpg" class="attachment-full" alt="preview_image1_large_preview.__large_preview" /></a>
		</div> 
	</div> </div></div></div></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/twitter-bootstrap-3-autocomplete-con-jquery-ui/">Twitter Bootstrap 3 autocomplete &#8211; come realizzarlo con JQuery UI</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/twitter-bootstrap-3-autocomplete-con-jquery-ui/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
