<?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>Le Blog de Nukleo &#187; css3</title>
	<atom:link href="https://www.nukleo.fr/blog/tag/css3/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.nukleo.fr/blog</link>
	<description>Un blog de webdesign et développement</description>
	<lastBuildDate>Tue, 04 Mar 2014 15:50:19 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>jQuery fadeIn et animations css3</title>
		<link>https://www.nukleo.fr/blog/jquery-fadein-animations-css3/</link>
		<comments>https://www.nukleo.fr/blog/jquery-fadein-animations-css3/#comments</comments>
		<pubDate>Tue, 04 Mar 2014 15:48:32 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Astuces]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.nukleo.fr/blog/?p=57</guid>
		<description><![CDATA[En utilisant jQuery pour faire un fadeIn() sur un élément qui contenait lui-même un élément ayant une animation css3, je me suis aperçu que le fade de jQuery ne fonctionnait plus correctement : au lieu d&#8217;avoir une jolie animation d&#8217;apparition, l&#8217;élément animé passait d&#8217;invisible à visible d&#8217;un coup à la fin de la durée d&#8217;animation.<br /><a href="https://www.nukleo.fr/blog/jquery-fadein-animations-css3/">Lire l'article</a>]]></description>
			<content:encoded><![CDATA[<p>En utilisant jQuery pour faire un fadeIn() sur un élément qui contenait lui-même un élément ayant une animation css3, je me suis aperçu que le fade de jQuery ne fonctionnait plus correctement : au lieu d&rsquo;avoir une jolie animation d&rsquo;apparition, l&rsquo;élément animé passait d&rsquo;invisible à visible d&rsquo;un coup à la fin de la durée d&rsquo;animation.<span id="more-57"></span></p>
<h3>Le problème</h3>
<p>La fonction fadeIn() de jQuery et les animations css3 ne font pas bon ménage si l&rsquo;élément sur lequel est appelé fadeIn() contient un autre élément animé via une animation css3.<br />
Un overlay avec un spinner (pour indiquer à l&rsquo;utilisateur le chargement de quelquechose) pourrait être une bon exemple :</p>
<p>Du html :</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;overlay&quot;&gt;
	&lt;div id=&quot;spinner&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Des css :</p>
<pre class="brush: css; title: ; notranslate">
#overlay{
...
}

#spinner{
	animation: rotation 3s infinite linear;
}

@keyframes rotation{
	from {transform: rotate(0deg);}
	to {transform: rotate(359deg);}
}
</pre>
<p>Du javascript :</p>
<pre class="brush: jscript; title: ; notranslate">
$('#overlay').fadeIn();
</pre>
<p>Et la c&rsquo;est le drame&#8230; pas de joli fadeIn, juste une apparition sèche :(</p>
<h3>La solution</h3>
<p>La solution consiste simplement à appliquer l&rsquo;animation css3 après le fadeIn() dans le callback de la fonction. Pour se faire, l&rsquo;animation est déclenchée par l&rsquo;ajout d&rsquo;une classe à l&rsquo;élément animé&#8230; on modifie les css en conséquence :</p>
<pre class="brush: css; title: ; notranslate">
#spinner{
	/* suppression de l'animation qu'on déporte dans une classe */
}

#spinner.animated{
	animation: rotation 3s infinite linear;
}
</pre>
<p>et on modifie le javascript :</p>
<pre class="brush: jscript; title: ; notranslate">
$('#overlay').fadeIn(function(){
	$('#spinner').addClass('animated');
});
</pre>
<p>Et hop tout rentre dans l&rsquo;ordre :)</p>
<p>Happy coding !</p>
]]></content:encoded>
			<wfw:commentRss>https://www.nukleo.fr/blog/jquery-fadein-animations-css3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
