 
 
 <?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; blur</title>
	<atom:link href="https://www.upcreative.net/tag/blur/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>CSS3 Tutorial: Come creare un effetto overlay iOS 7 blur</title>
		<link>https://www.upcreative.net/css3-tutorial-creare-effetto-overlay-ios-7-blur/</link>
		<comments>https://www.upcreative.net/css3-tutorial-creare-effetto-overlay-ios-7-blur/#comments</comments>
		<pubDate>Mon, 30 Sep 2013 17:48:21 +0000</pubDate>
		<dc:creator><![CDATA[upcreative]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[blur]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[iOS 7]]></category>
		<category><![CDATA[stili]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.upcreative.net/?p=1889</guid>
		<description><![CDATA[<p>The post <a rel="nofollow" href="https://www.upcreative.net/css3-tutorial-creare-effetto-overlay-ios-7-blur/">CSS3 Tutorial: Come creare un effetto overlay iOS 7 blur</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">
			
<p>Recentemente è stata rilasciata la versione definitiva del tanto atteso sistema operativo <a title="iOS 7 operating system" href="http://www.upcreative.net/tag/ios-7/"><strong>iOS 7</strong></a>  targato <a title="Apple" href="http://www.apple.com">Apple</a>, con il suo design flat, le nuove icone e tutto il bagaglio di innovazioni presentate da Tim Cook durante il <a href="http://www.apple.com/apple-events/september-2013/">Keynote tenutosi a Settembre</a> 2013. Uno degli aspetti principali che caratterizza il design si iOS 7 è determinato dall&#8217;uso costante dell&#8217;<strong>effetto blur,</strong> impiegato sui vari background che compongono l&#8217;interfaccia utente.</p>
<p>In questo articolo cercheremo di riprodurre questo effetto tramite l&#8217;esclusivo utilizzo di funzioni <a title="CSS3" href="http://www.upcreative.net/tag/css3/"><strong>CSS3</strong></a> avanzate, senza usare alcun tipo di immagine. Il risultato dell&#8217;esperimento sarà quello di creare una pagina con una barra di navigazione contenente un pulsante che servirà ad attivare il nostro overlay, ed un altro, contenuto all&#8217;interno dello stesso overlay, che avrà il compito di disattivarlo. L&#8217;obiettivo di quest&#8217;ultimo è quello di apparire con effetto slide sopra il contenuto del documento.</p>
<p><a ref="magnificPopup" href="http://www.upcreative.net/wp-content/uploads/2013/09/CSS3-Tutorial-Come-creare-un-effetto-overlay-iOS-7-blur.jpg"><img class="alignnone size-full wp-image-1895" alt="CSS3-Tutorial--Come-creare-un-effetto-overlay-iOS-7-blur" src="http://www.upcreative.net/wp-content/uploads/2013/09/CSS3-Tutorial-Come-creare-un-effetto-overlay-iOS-7-blur.jpg" width="690" height="340" /></a></p>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/30092013-CSS3-overlay-iOS-7-blur/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-eye-open"></i>Demo</span></a></div>
 
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/download/1898/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-download-alt"></i>Download</span></a></div>
 
		</div> 
	</div> </div></div><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h3>Il markup HTML</h3>
<p>Come primo passaggio creiamo il nostro markup html, comprensivo della barra di navigazione, del contenuto della pagina, e della div di overlay:</p><pre class="crayon-plain-tag">&lt;nav&gt;
		&lt;h1 class="title"&gt;Overlay Blur effect&lt;/h1&gt;
		&lt;button class="open-overlay"&gt;Show&lt;/a&gt;
	&lt;/nav&gt;
	&lt;article&gt;

		&lt;ul class='list'&gt;
			&lt;li class="show-detail"&gt;
				&lt;img src="img/1.jpg" height="80px"&gt;
				&lt;div&gt;
					&lt;h3&gt;Lorem ipsum&lt;/h3&gt;
					&lt;h4&gt;Radioactive&lt;/h4&gt;
					&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.&lt;/p&gt;
				&lt;/div&gt;
			&lt;/li&gt;
			&lt;li class="show-detail"&gt;
				&lt;aside&gt;
					&lt;img src="img/2.jpg" height="80px"&gt;
				&lt;/aside&gt;
				&lt;div&gt;
					&lt;h3&gt;Lorem ipsum&lt;/h3&gt;
					&lt;h4&gt;Radioactive&lt;/h4&gt;
					&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.&lt;/p&gt;
				&lt;/div&gt;
			&lt;/li&gt;
			&lt;li class="show-detail"&gt;
				&lt;aside&gt;
					&lt;img src="img/3.jpg" height="80px"&gt;
				&lt;/aside&gt;
				&lt;div&gt;
					&lt;h3&gt;Lorem ipsum&lt;/h3&gt;
					&lt;h4&gt;Radioactive&lt;/h4&gt;
					&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.&lt;/p&gt;
				&lt;/div&gt;
			&lt;/li&gt;
			&lt;li class="show-detail"&gt;
				&lt;aside&gt;
					&lt;img src="img/4.jpg" height="80px"&gt;
				&lt;/aside&gt;
				&lt;div&gt;
					&lt;h3&gt;Lorem ipsum&lt;/h3&gt;
					&lt;h4&gt;Radioactive&lt;/h4&gt;
					&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.&lt;/p&gt;
				&lt;/div&gt;
			&lt;/li&gt;
		&lt;/ul&gt;

	&lt;/article&gt;
	&lt;section class="overlay"&gt;

		&lt;button class="close-overlay"&gt;Hide&lt;/a&gt;

	&lt;/section&gt;</pre><p>
&nbsp;</p>
<p>Per fare ciò abbiamo utilizzato elementi <a href="http://www.upcreative.net/tag/html5/">html5</a> come <strong>nav</strong> ed <strong>article</strong>  e <strong>section</strong>, ma è possibile utilizzare  anche altri elementi con attributo css &#8220;<em>display:block</em>&#8220;. Abbiamo inoltre inserito all&#8217;interno del <em>tag article, </em>una lista con stili simili ad iOS7 (giusto per rimanere nel tema).</p>
<h3>Il foglio di stile CSS</h3>
<p>Prima di arrivare al passaggio più importante, ovvero attribuire ai vari elementi gli stili necessari per rendere possibile l&#8217;effetto overlay con blur, cerchiamo di dare alla pagina un aspetto che si avvicini più possibile alla grafica di iOS 7:</p><pre class="crayon-plain-tag">body, html{
	height: 100%;
	font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
	font-weight: 100;
	overflow: hidden;
}

nav {
  top: 0;
  height: 44px;
  padding:0;	  	  
  background-color: #F7F7F7;
  border-bottom: 1px solid #A7A7AA;	  	  
  position: relative;  
}	
nav .title {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  margin:0;
  width: 100%;
  font-size: 18px;
  font-weight: 100;
  line-height: 44px;
  color: #333;
  text-align: center;
  white-space: nowrap;
}

nav .title + button {
  position: absolute; 
  top: 5px;
  right: 5px;
  z-index: 10; 

  border-radius:4px;
  padding:6px 8px;
  border:none;	
  color: #397AFC;
  background: transparent;	  
}
nav .title + button:active{
	color: #7BB6FB;
}

article {
  position: fixed;
  top: 45px;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: auto;
  background: #EFEFF4;
  padding-top:20px;
}

.list {
   list-style: none;
   margin: 0 0 10px 0;
   padding: 0;
   border-top: solid 1px #c8c8c8;
   border-bottom: solid 1px #c8c8c8;
   background-color: #fff;
   overflow: hidden;
   width: 100%;
}

.list &gt; li {
   padding: 13px 15px 13px 15px;
   -webkit-transition: all .3s ease-out;
   -moz-transition: all .3s ease-out;
   transition: all .3s ease-out;
   position: relative;
   background-color: #fff;
   font-size: 12pt;
}
.list img{
	float:left;
	margin: 0 10px 10px 0;
}
.list h3,
.list h4,
.list p{
	font-size: 0.9em;
	margin:5px 0;
}

.list &gt; li::before {
   content: '';
   display: block;
   position: absolute;
   bottom: 0px;
   left: 15px;
   right: 0px;
   border-bottom: solid 1px #c8c8c8;
}

.list &gt; li.show-detail::after {
   content: 'i';
   display: block;
   height: 20px;
   width: 22px;
   border-radius: 20px;
   border: solid 1px #007aff;
   color: #007aff;
   font: bold 14px/0 'Times', serif;
   -webkit-box-sizing: border-box;
   -moz-box-sizing: border-box;
   box-sizing: border-box;
   padding: 10px 8px;
   position: absolute;
   top: 10px;
   right: 15px;
}</pre><p>
Applicando questa porzione di codice abbiamo attribuito al documento il font &#8220;<strong>HelveticaNeue Light</strong>&#8220;, tipico del flat design targato Apple, abbiamo posizionato e &#8220;stilizzato&#8221; la barra di navigazione e gli elementi in essa contenuti (come titolo e pulsante d&#8217;azione) ed infine abbiamo posizionato il corpo della pagina, costituito appunto dal tag &#8220;<em>article</em>&#8220;.</p>
<p>Passiamo invece agli stili CSS che caratterizzano il risultato del nostro esperimento:  aggiungiamo la proprietà &#8220;<a href="http://www.w3schools.com/css3/css3_transitions.asp"><strong>transition</strong></a>&#8221; all&#8217;elemento article, specificando che sia applicata all&#8217;attributo <strong>filter</strong>.</p><pre class="crayon-plain-tag">article {
  position: fixed;
  top: 45px;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: auto;
  background: #EFEFF4;
  padding-top:20px;

  -webkit-transition: -webkit-filter .15s ease;
          		  transition: filter .15s ease;
}</pre><p>
&nbsp;</p>
<p>Poi aggiungiamo un blur di 15 px al contenuto della pagina nel caso in cui il body abbia la classe &#8220;<em>open-overlay</em>&#8220;, rimuovendolo invece nel caso in cui abbia la classe &#8220;<em>close-overlay</em>&#8220;.</p><pre class="crayon-plain-tag">body.open-overlay article{
	-webkit-filter:blur(15px);
	filter: blur(15px);
}

body.close-overlay article{
	-webkit-filter:none;
	filter:none;
}</pre><p>
&nbsp;</p>
<p>Ora l&#8217;elemento più importante: l&#8217;overlay. Attribuiamo al nostro overlay (tag section) una posizione assoluta nei confronti del documento e posizioniamolo in modo tale che non copra la barra di navigazione, poi aggiungiamo le altre proprietà fondamentali:</p>
<ol>
<li>L&#8217;attributo <em>visibility:hidden, </em>perchè nello &#8220;stato normale&#8221; l&#8217;overlay non deve essere visibile</li>
<li>L&#8217;attributo <em>backface-visibility:hidden</em> (nei suoi adattamenti per la compatibilità dei vari browser): con il quale miglioriamo le prestazioni di rendering nel caso di trasformazioni CSS prevenendo quest&#8217;ultimo dall&#8217;essere eseguito per la parte posteriore dell&#8217;elemento</li>
<li>L&#8217;attributo<em> transform:translate3d(0,0,0) </em>con il quale <strong>miglioriamo la fluidità della nostra animazione</strong> &#8220;<strong>forzando&#8221; l&#8217;utilizzo della GPU</strong></li>
<li>L&#8217;attributo &#8220;<em>animatior</em>&#8220;, con il quale comunichiamo all&#8217;overlay quale genere di animazione eseguire, quanto tempo deve durare, e che tipo di &#8220;andamento&#8221; eseguire (lineare, swing ecc.)</li>
<li>L&#8217;istruzione &#8220;<strong><a href="http://www.w3schools.com/css3/css3_animations.asp"><em>keyframe</em></a>&#8220;, </strong>con la quale definiamo le animazioni</li>
</ol>
<pre class="crayon-plain-tag">section {
  position: absolute;
  left: 0;
  top: 44px;	  
  right: 0;	
  bottom:0;  
  background-color: rgba(156,159,164,.5);	  
  padding:20px;
  text-align: center;

  visibility: hidden;

  /* migliora le prestazioni prevenendo il render della parte 'posteriore' dell'elemento */
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
   backface-visibility: hidden;

   /* accelerazione hardware */
   -webkit-transform: translate3d(0,0,0);
   -moz-transform: translate3d(0,0,0);
   -ms-transform: translate3d(0,0,0);
   transform: translate3d(0,0,0);			   
}	

body.open-overlay section{
	-webkit-animation: showFromBottom .25s ease both;
	-moz-animation: showFromBottom .25s ease both;
	animation: showFromBottom .25s ease both;

	visibility: visible;
}

body.close-overlay section{
	-webkit-animation: hideToBottom .25s ease both;
	-moz-animation: hideToBottom .25s ease both;
	animation: hideToBottom .25s ease both;
}

/* definizione delle animzioni dell'overlay  */

	@-webkit-keyframes showFromBottom {
		from { -webkit-transform: translateY(100%); }
	}
	@-moz-keyframes showFromBottom {
		from { -moz-transform: translateY(100%); }
	}
	@keyframes showFromBottom {
		from { transform: translateY(100%); }
	}

	@-webkit-keyframes hideToBottom {
		to { -webkit-transform: translateY(100%); }
	}
	@-moz-keyframes hideToBottom {
		to { -moz-transform: translateY(100%); }
	}
	@keyframes hideToBottom {
		to { transform: translateY(100%); }
	}</pre>
Apro una piccola parentesi in merito: devo dire che mi piace molto utilizzare la terza delle proprietà elencate, che permette, nel caso di dispositivi mobile, di raggiungere o perlomeno di avvicinarsi alle prestazioni delle applicazioni native.</p>
<p>Tornando a noi, vediamo come nel caso in cui il body abbia la classe &#8220;<em>open-overlay</em>&#8221; o &#8220;<em>close-overlay</em>&#8220;, il tag section debba eseguire le due animazioni rispettivamente di comparsa e scomparsa dichiarate sotto il codice &#8220;<em><strong>keyframes</strong></em>&#8221; : <strong>showFromBottom</strong> e <strong>hideToBottom</strong>. Abbiamo inoltre modificato l&#8217;attributo &#8220;<em>visibility:visible</em>&#8221; per rendere visibile il pannello.</p>
<p>Il risultato dovrebbe quindi essere il seguente:</p>
<ol>
<li>Nel caso di un body con classe &#8220;open-overlay&#8221; dovremmo vedere l&#8217;animazione dell&#8217;overlay assieme a quella del blur del documento.</li>
<li>Nel caso di un body con classe &#8220;close-overlay&#8221; dovremmo vedere esattamente le due animazioni opposte, per poi tornare allo stato iniziale.</li>
</ol>
<p>Passiamo quindi all&#8217;ultima parte.</p>
<h3>Il codice Javascript</h3>
<p>Per scrivere meno righe di javascript, incorporiamo nel documento due librerie: jQuery e Modernizr, rispettivamente per effettuare il bind degli eventi del click dei pulsanti di apertura e chiusura, e per ricavare il nome dell&#8217;evento di fine animazione, che varia a seconda del browser.</p><pre class="crayon-plain-tag">var endAnimationName = {
	'WebkitAnimation' : 'webkitAnimationEnd',
	'OAnimation' : 'oAnimationEnd',
	'msAnimation' : 'MSAnimationEnd',
	'animation' : 'animationend'
};
var animationName = endAnimationName[ Modernizr.prefixed( 'animation' ) ];

$(function(){
   //bind dell'evento click sul pulsante di attivazione 
   $("button.open-overlay").on("click", function(){
	   $("body").addClass("open-overlay");
   });
   $("button.close-overlay").on("click", function(){
	   $("body").addClass("close-overlay").on(animationName, function(){				   
		   $(this).off(animationName)
		   .removeClass("open-overlay close-overlay");
	   });
   });
});</pre><p>
Alla fine dell&#8217;animazione di chiusura, togliamo al body entrambe le classi &#8220;open-overlay&#8221;  e &#8220;close-overlay&#8221;, per ritornare così allo stato di partenza.</p>
<h3>Conclusioni finali</h3>
<p>Purtroppo questo esperimento non è ancora ottimizzato con tutti i browser (per esempio nel caso di Firefox non è possibile applicare l&#8217;effetto blur al contenuto della pagina con il semplice attributo &#8220;<em>filter:blur</em>&#8221; ma solo servendosi degli <strong>effetti svg</strong>) e inoltre si tratta in fin dei conti di un workaround, in quanto l&#8217;effetto sul documento non è scaturito dalla sovrapposizione dell&#8217;overlay bensì da uno stile completamente separato. Tuttavia spero che questo tutorial ti sia d&#8217;aiuto per imparare nuove regole CSS3 e che magari potrai utilizzarlo nel tuo prossimo progetto!</p>

		</div> 
	</div> </div></div><div class="g-cols"><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/tutorials/30092013-CSS3-overlay-iOS-7-blur/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-eye-open"></i>Demo</span></a></div>
 
		</div> 
	</div> </div><div class="one-half">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			<div class="wpb_button align_center"><a href="http://www.upcreative.net/download/1898/"class="g-btn type_primary size_big"><span><i class="fa fa-icon-download-alt"></i>Download</span></a></div>
 
		</div> 
	</div> </div></div><div class="g-cols"><div class="full-width">
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<h2>Crea la tua mobile app in HTML, CSS3 e Javascript</h2>
<p>Utilizzando questa tecnica unita a molte altre ho creato per i miei clienti oltre 10 applicazioni per dispositivi mobile, tra cui due progetti personali: <a title="Tint Weather App - HTML, CSS3 e javascript mobile app" href="http://www.upcreative.net/tint-weather-app/">Tint Weather App</a> e <a title="Dieta SI o NO? - HTML, CSS3 e javascript mobile app" href="http://www.upcreative.net/app-dieta-si-o-no/">Dieta SI o NO?</a>. Se anche tu sei un web designer e vuoi realizzare la tua applicazione mobile da distribuire nei vari stores, forse sarai interessato al mio e-book: <a title="Html Mobile Accelerato - Come realizzare HTML Mobile App fluide e preformanti" href="http://www.upcreative.net/html-mobile-accelerato/"><strong>HTML Mobile Accelerato</strong></a>.</p>
<p>Grazie ad esso verrai a conoscenza di tutte quelle tecniche che renderanno la tua applicazione mobile fluida e reattiva come quelle native.</p>

		</div> 
	</div> 
	<div class="wpb_text_column ">
		<div class="wpb_wrapper">
			
<p>I am text block. Click edit button to change this text.</p>

		</div> 
	</div> 
	<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></div>
</div></div><p>The post <a rel="nofollow" href="https://www.upcreative.net/css3-tutorial-creare-effetto-overlay-ios-7-blur/">CSS3 Tutorial: Come creare un effetto overlay iOS 7 blur</a> appeared first on <a rel="nofollow" href="https://www.upcreative.net">upCreative</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.upcreative.net/css3-tutorial-creare-effetto-overlay-ios-7-blur/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
