<?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>Clearideaz &#187; Javascript</title>
	<atom:link href="http://clearideaz.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://clearideaz.com</link>
	<description>webdesigner et intégrateur XHTML / CSS</description>
	<lastBuildDate>Mon, 20 Jun 2011 14:00:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Checklist avant livraison d&#8217;un projet</title>
		<link>http://clearideaz.com/2010/11/checklist-avant-livraison-dun-projet/</link>
		<comments>http://clearideaz.com/2010/11/checklist-avant-livraison-dun-projet/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 13:18:02 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[Accessibilité]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Ergonomie]]></category>
		<category><![CDATA[HTML / CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[contraintes]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://clearideaz.com/?p=413</guid>
		<description><![CDATA[Je ne sais pas pour vous mais la livraison d&#8217;un projet est souvent sujet à bon nombre d&#8217;incertitudes. A-t&#8217;on pensé à tout ? Un bon nombre de clients va chercher à évaluer la réponse apportés à sa demande initiale, ce qui est tout à fait normal. Il est important d&#8217;avoir une checklist qui servira de [...]]]></description>
			<content:encoded><![CDATA[<p>Je ne sais pas pour vous mais la livraison d&#8217;un projet est souvent sujet à bon nombre d&#8217;incertitudes. A-t&#8217;on pensé à tout ?<br />
Un bon nombre de clients va chercher à évaluer la réponse apportés à sa demande initiale, ce qui est tout à fait normal.<br />
Il est important d&#8217;avoir une checklist qui servira de contrôle qualité avant la livraison d&#8217;un site web.<br />
Je précise que ces contraintes sont largement inspirées de celles de l&#8217;équipe web &laquo;&nbsp;BNP E-business&nbsp;&raquo;.</p>

<p>Voici donc une liste (non-exhaustive) des points de contrôle effectués :</p>
<table>
<thead>
<tr>
<th colspan="2" id="controlpoint">Points de contrôle</th>
</tr>
</thead>
<tbody>
<tr>
<th id="ergonomie" colspan="2">Ergonomie</th>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="underlinerule">Ne pas utiliser de soulignement de texte pour autre chose que des liens.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="404error">La page 404 est indispensable et doit être personnalisée aux couleurs du site. Proposer éventuellement un formulaire de recherche.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="printsheet">Une feuille de style d’impression doit être prévue.</td>
</tr>
<tr>
<th id="accessibilityrules" colspan="2">Accessibilité</th>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="flashalt">En cas d’utilisation de plug-ins (vidéo, Flash), prévoir une alternative textuelle pour un utilisateur qui n’aurait pas installé et/ou ne voudrait pas installer le plug-in.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="accessibilitybg">Tester la page sans images (via l&#8217;extension Webdevelopper de Firefox) pour s&#8217;assurer que l&#8217;ensemble du contenu est lisible sans les images de fond. Exemple : Un texte blanc sur une image def fond peut devenir illisible si aucune couleur de fond n&#8217;a été spécifiée dans les propriétés du bloc conteneur.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="imgalt">Toute image doit avoir un alt, renseigné ou non. Illustration : alt vide, ou image de fond</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="fileinfo">Dans le cas où des fichiers sont proposés au téléchargement, deux points sont à respecter : format ouvert, poids du fichier à télécharger doit être indiqué.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="nonobstrusive">Le javascript doit être non-obstrusif et le site doit être parfaitement utilisable s&#8217;il est désactivé par l&#8217;utilisateur.</td>
</tr>
<tr>
<th id="htmlcssintergration" colspan="2">Intégration HTML / CSS</th>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="w3cvalid">Les pages sont valides W3C</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="cleanhtml">Le balisage est propre : pas de styles ou de scripts dans le code HTML</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="doctypetransitional">Le doctype du document HTML sera du XHTML 1.0 Transitional  dans le cas (limité) d’utilisation d&#8217;iframe.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="doctypeframeset">Le doctype du document HTML sera du XHTML 1.0 Frameset  dans le cas (limité) d’utilisation de frameset.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="tableforbidden"><strong>Bannir l&#8217;utilisation de tableaux</strong> pour la mise en page, les tableaux ne doivent être utilisée que pour des données tabulaires et non pas pour créer des mises en page.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="titlerule">S&#8217;efforcer de renseigner l&#8217;intitulé « title » des liens pour des raisons de référencement et d&#8217;accessibilité. Le title du lien doit fournir plus d&#8217;informations que l&#8217;intitulé du lien lui-même (mais y compris l&#8217;intitulé ; ex : &laquo;&nbsp;Aide (nouvelle fenêtre)&nbsp;&raquo;)</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="tagstructural">La <strong>structuration</strong> de l&#8217;<strong>information</strong> doit être <strong>cohérente</strong> par rapport au <strong>contexte général du site</strong> Web (ex : pas de pub au milieu du texte)</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="tagmap">Une page Web doit posséder une structure cohérente (utiliser <strong>h1 (oblig.), h2</strong>, …pour leur fonction 1ère ; les blocs d&#8217;infos doivent être distincts)</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="tablerule">Pour les tableaux de données, identifier les zones suivante : « thead » (pour l&#8217;entête du tableau), « tbody » (pour le corps du tableau) et « tfoot » (pour les données de pied de tableau). On s&#8217;efforcera de fournir une description du tableau au sein de la balise « summary »</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="formlinks">Les champs de saisie d&#8217;un formulaire doivent être reliés à leurs textes explicatifs respectifs (spécifier <strong>label, id</strong> et <strong>for</strong>)</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="tagsense">Respecter le sens sémantique des balises. Proscrire l&#8217;utilisation des balises et attributs dépréciés (ex : b, center, basefont, applet, dir, font, isindex, menu, s, strike, u et align, bgcolor, height…).</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="abbracro">Utiliser la balise &lt;abbr&gt; et/ou &lt;acronym&gt; ainsi que son attribut title lorsque cela est possible.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="iespecific">Dans le cas d’un style spécifique à Internet Explorer, utiliser les commentaires conditionnels. Evitez les hacks du type &laquo;&nbsp;_margin&nbsp;&raquo; ou encore &laquo;&nbsp;*width&nbsp;&raquo;</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="declarationsize">Pour conserver un maximum de souplesse aux feuilles de style, limiter tant que possible le « poids » des déclarations. Exemple : privilégier « .content » à « body.page #wrapper div.content »</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="classchart"><strong>Pas de notions topographiques ou colorimétriques dans les noms de classes</strong> ou : noms faisant référence à la structure. Pas de couleur ni gauche/droite. Exemple : ne pas utiliser div.rouge ou div.left. Si on décide un jour de modifier les propriétés de placement ou d&#8217;apparence, ces classes n&#8217;auront plus de sens.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="quote">Ne pas utiliser de cote, double ou simple, dans les chemins des CSS.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="easyupdate">Les sites, les pages doivent pouvoir être actualisés facilement et avec souplesse. De ce fait, les zones de contenu doivent s’étendre graphiquement en hauteur (pas de hauteur fixe donc pour les blocs)</td>
</tr>
<tr>
<th id="optimizationseo" colspan="2"> Optimisation du référencement</th>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="getparameter">Pour des raisons de référencement, limiter au maximum les paramètres et les caractères « exotiques » dans les liens.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="metatag">Les balises d’indexation &lt;title&gt;, &lt;meta name=&nbsp;&raquo;description&nbsp;&raquo; /&gt; et &lt;meta name=&nbsp;&raquo;keywords&nbsp;&raquo; /&gt; doivent êtres renseignées même si leur action en terme de référencement peut être discutable. Elles doivent être situées juste sous la balise définissant l’encodage et dans l’ordre suivant : title / description / keywords</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="metatitle">La balise &lt;title&gt; doit être présente et renseignée sur toutes les pages. Elle doit être en adéquation avec son contenu et donc, dans la plupart des cas, différente d’une page à l’autre.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="metadescription">La balise &lt;meta name=&nbsp;&raquo;description&nbsp;&raquo;&gt; doit être présente et renseignée sur toutes les pages. C’est une balise visible par l’internaute. Elle doit être significative de son contenu, des services rendus par la page, des informations livrées.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="metakeyword">La balise &lt;meta name=&nbsp;&raquo;keywords&nbsp;&raquo;&gt; doit être présente et renseignée sur toutes les pages. Elle doit reprendre les quelques mots-clé de la page. On peut aussi y inclure certains pluriels, synonymes, anglicismes, etc.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="robotstxt">Prévoir un fichier à l’intention des robots d’indexation, à la racine du site. (robots.txt)</td>
</tr>
<tr>
<th id="browsercompatibility" colspan="2"> Compatibilité Navigateurs</th>
</tr>
<tr>
<td id="ie6"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="ie6">Internet Explorer 6,<br />
(N.B. : Pour cette version, il faut que le site soit un minimum exploitable)</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="ie7more">Internet Explorer 7 et +,</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="firefox">Firefox 2 et +,</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="safari">Safari 2 et + (tolérance)</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="opera">Opera 9 et + (tolérance)</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="resolutionrule">Les pages livrées doivent s’afficher, sans ascenseur horizontal, dans un écran en 1024 x 768</td>
</tr>
<tr>
<th id="performance" colspan="2"> Performance</th>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="weightrule">Le poids maximal d’une page, images incluses, ne doit pas dépasser 150k.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="homeweight">Seule la page d’accueil fait exception et peut atteindre jusqu’à 250k, images incluses.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="optimizerequests">Évitez les appels multiples à des feuilles de style ou à des fichiers javascript. Merger ces appels pour des raisons évidentes de performance</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="png24">L’utilisation du format PNG 24 devra être utilisé avec parcimonie pour des raisons de compatibilité navigateur (IE6 ne supporte pas les couches alpha sans l&#8217;utilisation de DirectX. Ce dernier pose des soucis de performances, les images filtrées n&#8217;étant pas mises en cache).</td>
</tr>
<tr>
<th id="others" colspan="2"> Autre&#8230;</th>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="utf8encoded">L’encodage privilégié est l’UTF-8, il est indiqué avec la balise meta « content type ».</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="specialcharacters">Les caractères suivants doivent être encodés sous forme d’entité HTML : &amp;, &lt;, &gt;, €</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="favicon">Prévoir une icône de favori à la racine du site.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="textconvention">Les valeurs monétaires, statiques ou dynamiques, doivent suivre le format suivant : un espace insécable comme séparateur de millier une virgule comme séparateur de décimale un espace insécable entre le nombre et son unité</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="textconvention2">Utiliser un espace insécable entre une double ponctuation et le mot qui la précède : !, ?, :, ;</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="urlrule">Les chemins vers les pages (mais aussi vers les scripts, feuilles de style, images, etc) doivent être en absolu en considérant le répertoire / comme la racine du site.</td>
</tr>
<tr>
<td valign="middle"><img title="Validé" src="http://clearideaz.com/wp-content/uploads/2010/11/valid.gif" alt="Validé" width="25" height="18" /></td>
<td id="ampencoding">Dans le cas d’envoi de paramètre dans l’URL, ne pas oublier d’encoder sous forme d’entité HTML le « &amp; » (&amp;amp;).</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2010/11/checklist-avant-livraison-dun-projet/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jQuery.eventManager, un plugin de gestion d&#8217;évènements</title>
		<link>http://clearideaz.com/2010/07/jquery-eventmanager-un-plugin-de-gestion-devenements/</link>
		<comments>http://clearideaz.com/2010/07/jquery-eventmanager-un-plugin-de-gestion-devenements/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 08:06:07 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[delegate]]></category>
		<category><![CDATA[évènements]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://clearideaz.com/?p=400</guid>
		<description><![CDATA[La méthode $.delegate de jQuery fonctionne sur le principe de la délégation d&#8217;évènements. La délégation permet notamment de pouvoir ajouter de nouveaux éléments dans le DOM dynamiquement (via Ajax par exemple) sans pour autant leur ré-attacher d&#8217;évènements préalablement défini. Elle assure également de meilleures performances. Sur la plupart des projets, je m&#8217;amusais à déléguer des [...]]]></description>
			<content:encoded><![CDATA[<p>La méthode <code>$.delegate</code> de jQuery fonctionne sur le principe de la délégation d&#8217;évènements. La délégation permet notamment de pouvoir ajouter de nouveaux éléments dans le DOM dynamiquement (via Ajax par exemple) sans pour autant leur ré-attacher d&#8217;évènements préalablement défini. Elle assure également de meilleures performances.</p>
<p>Sur la plupart des projets, je m&#8217;amusais à déléguer des évènements à des objets globaux. C&#8217;est ensuite au moment de l&#8217;appel à l&#8217;évènement que je filtrais le type d&#8217;action à effectuer. C&#8217;est un exercice plutôt fastidieux&#8230;</p>
<p>J&#8217;ai donc décidé de créer un plugin jQuery permettant de faciliter la gestion d&#8217;évènement via delegate. Il suffit pour cela de créer un objet recensant les objets globaux, les évènements attachés, le filtre, puis l&#8217;action a effectuer.</p>

<p>Voici un exemple d&#8217;objet :</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> eventList <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #3366CC;">'div'</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #3366CC;">'mouseover'</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #3366CC;">'.sidebar'</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
       $<span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'over'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
     <span style="color: #003366; font-weight: bold;">default</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
       $<span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background-color'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'red'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #3366CC;">'mouseout'</span> <span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      $<span style="color: #009900;">&#40;</span>elem<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'background-color'</span><span style="color: #339933;">:</span><span style="color: #3366CC;">'transparent'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
 <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>En clair, je délègue des évènements à un ou plusieurs objets de type <code>div</code>. Je lui attribue un évènement de type <code>mouseover</code>. Par défaut, au passage de la souris sur cette <code>div</code>, le fond de cet objet sera rouge. Si la div possède la classe <code>.sidebar</code>, alors je lui ajoute une classe <code>.over</code>. Enfin, lorsque je quitte un objet de type <code>div</code>, je lui affecte un fond transparent.</p>
<p>Une fois cet objet créé, il ne reste plus qu&#8217;à l&#8217;insérer dans un appel au plugin eventManager :</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#wrapper'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">eventManager</span><span style="color: #009900;">&#40;</span>eventList<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Dans cet appel, seules les div placées dans un objet ayant pour ID #wrapper seront affectés par les évènements à déléguer.</p>
<p>Je vous propose d&#8217;accèder à la démo pour vous faire une idée des possibilités offertes. Vous pourrez ensuite, si vous le souhaitez, télécharger le plugin sur <a href="http://github.com/clearideaz/jQuery.eventManager">mon espace Github</a>.</p>
<p><em>Édité le 19 juillet : <strong>Nouveauté sur le plugin,</strong> le code a été nettoyé, on peut se passer de &#8216;default&#8217; lorsqu&#8217;il n&#8217;y a pas de sélecteur filtre. Autre nouveauté, on peut désormais utiliser &laquo;&nbsp;this&nbsp;&raquo; au lieu de &laquo;&nbsp;elem&nbsp;&raquo; dans les fonctions de l&#8217;objet contenant les évènements. Merci beaucoup à <a title="Sunfox.org, le site qui te donne des tâches de rousseur" href="http://sunfox.org">Sunny</a> pour son aide !</em></p>
<ul class="demo">
<li><a title="Visualiser la démo du plugin jQuery.eventManager" href="http://clearideaz.com/demo/jQuery.eventManager/">Accéder à la démonstration</a></li>
<li><a title="Télecharger le plugin jQuery.eventManager sur Github" href="http://github.com/clearideaz/jQuery.eventManager/downloads">Télécharger le plugin</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2010/07/jquery-eventmanager-un-plugin-de-gestion-devenements/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Internet Explorer 9 sur la bonne voie</title>
		<link>http://clearideaz.com/2010/06/internet-explorer-9-sur-la-bonne-voie/</link>
		<comments>http://clearideaz.com/2010/06/internet-explorer-9-sur-la-bonne-voie/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 04:31:18 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://clearideaz.com/2010/06/internet-explorer-9-sur-la-bonne-voie/</guid>
		<description><![CDATA[Des débuts (très) difficiles Internet Explorer a (très) souvent été la cible de critiques passionnées. En cause, son moteur de rendu (Trident) non conforme aux standards du web définis par le W3C et ses nombreux bugs. La version 6 s&#8217;imposait de nombreuses années au sein du système Windows XP. Microsoft décide de publier la version [...]]]></description>
			<content:encoded><![CDATA[<h3>Des débuts (très) difficiles</h3>
<p><img class="alignright size-full wp-image-377 bgless" src="http://clearideaz.com/wp-content/uploads/2010/06/ie.png" alt="Internet Explorer 9, the fucking browser" width="220" height="213" />Internet Explorer a (très) souvent été la cible de critiques passionnées. En cause, son moteur de rendu (Trident) non conforme aux standards du web définis par le W3C et ses nombreux bugs.<br />
La version 6 s&#8217;imposait de nombreuses années au sein du système Windows XP.</p>
<p>Microsoft décide de publier la version 7 de son navigateur qui sera en série sur le tout nouveau système, Windows Vista. Les améliorations sont nombreuses mais la firme Redmond persiste dans sa volonté d&#8217;imposer ses &laquo;&nbsp;standards&nbsp;&raquo;. Il intègre toutefois de nouveaux pseudo-sélecteurs CSS (IE6 ne supportant que les pseudo-sélecteurs affectés aux liens) et supporte enfin le format PNG alpha.<br />
Problème, la plupart des utilisateurs de Windows XP ne migrent pas vers Vista, le système ayant une mauvaise réputation en terme de stabilité et d&#8217;ergonomie. Le passage vers IE7 prendra beaucoup de temps et encore aujourd&#8217;hui, IE6 dispose d&#8217;une part importante dans le pourcentage des navigateurs utilisés. Cette lente migration s&#8217;explique également par le fait qu&#8217;Internet Explorer 6 ne dispose d&#8217;aucun système de mise à jour automatique (à contrario de Firefox par exemple).</p>

<h3>Un semblant de renouveau</h3>
<p>IE8 succède à la version 7. Les effets d&#8217;annonce de cette version n&#8217;attenueront pas les critiques de la communauté web. Microsoft fait encore une fois cavalier seul. Son navigateur, en dépit de quelques améliorations ergonomiques, ne parvient pas à séduire le public de connaisseurs.<br />
Ce navigateur met en place un nouveau principe : la définition du mode de rendu. <a title="Les standards selon la firme Redmond" href="http://clearideaz.com/2008/02/les-standards-selon-la-firme-redmond/">Il est possible en effet de choisir entre le mode de rendu IE7 et celui d&#8217;IE8 via une balise meta</a>. Ce principe va à l&#8217;encontre du concept d&#8217;amélioration progressive. On ne devrait pas choisir de développer pour un ancien navigateur.<br />
Autre problème, le support du PNG pourtant bien géré sur IE7 est défaillant sur cette version.</p>
<h3>Une lueur d&#8217;espoir</h3>
<p>Intervient le projet IE9 mené par une équipe renouvelée et des consultants plus jeunes ! À l&#8217;heure où je publie cet article, cette version est encore à l&#8217;état de développement.<br />
Première nouveauté : Microsoft communique largement sur le projet et encourage fortement la communauté à effectuer des retours.<br />
Seconde nouveauté : IE9 se veut respectueux des standards du web. <a title="Interview: Paul Cotton on Microsoft Participation in the W3C HTML Working Group" href="http://www.w3.org/QA/2010/03/interview_paul_cotton_on_micro.html">Microsoft se retrouve désormais contributeur actif du W3C</a>. Ils insistent sur l&#8217;obligation de rendu unique sur l&#8217;ensemble des navigateurs.<br />
Troisième et dernière nouveauté : L&#8217;équipe d&#8217;IE9 a fait beaucoup d&#8217;efforts pour améliorer les performances de son navigateur. Il dispose aujourd&#8217;hui d&#8217;un des plus puissants moteur Javascript (en comparaison avec les moteurs en version définitive et publiés avec des navigateurs stable, hein !).</p>
<p>Mais ce qui est surtout le plus excitant, c&#8217;est le support de nouvelles technologies web. La liste est longue : support de CSS3 (on peut enfin utiliser border-radius, ouais !), moteur de rendu capable d&#8217;interpréter HTML5 ainsi que son API (balise video, audio, geolocalisation, webworkers&#8230;), implémentation de font-face, mise en conformité de l&#8217;interpréteur javascript avec les standards, support de SVG&#8230;<br />
Et dernièrement, <a title="HTML5, Native: Third IE9 Platform Preview Available for Developers" href="http://blogs.msdn.com/b/ie/archive/2010/06/23/html5-native-third-ie9-platform-preview-available-for-developers.aspx">le blog du navigateur Microsoft a annoncé le support de canvas</a> ainsi que la prise en charge du format libre WOFF, on y croyait vraiment plus !</p>
<p>Chose étonnante, le futur navigateur suscite l&#8217;enthousiasme des professionnels (<a title="Internet Explorer 9 is on the boil" href="http://www.stuffandnonsense.co.uk/blog/about/internet_explorer_9_in_on_the_boil/">Andy Clarke</a>, <a title="IE9 preview" href="http://www.zeldman.com/2010/03/16/ie9-preview/">Zeldman</a> ou encore <a title="Five Things IE9 is (Actually) Doing Right" href="http://sixrevisions.com/web-development/five-things-ie9-is-actually-doing-right/">Jason Cube</a> de Six Revision).</p>
<h3>Et finalement&#8230;</h3>
<p>C&#8217;est donc une grande avancée et on s&#8217;imagine déjà développer des sites internet sans avoir à le tester sur 36 navigateurs ! Mais malgré tout, ne fantasmons pas trop vite, le chemin sera encore long et il faudra je pense attendre encore 10 ans avant de pouvoir utiliser pleinement les nouvelles possibilités offertes par HTML5 et CSS3.</p>
<p><em>Edité le 25 juin 2010 à 9 h 33 min : Ajout d&#8217;une petite phrase au sujet de l&#8217;intérêt suscité par le navigateur auprès de professionnels</em><br />
<!--more--></p>
<h3>Un semblant de renouveau</h3>
<p>IE8 succède à la version 7. Les effets d&#8217;annonce de cette version n&#8217;attenueront pas les critiques de la communauté web. Microsoft fait encore une fois cavalier seul. Son navigateur, en dépit de quelques améliorations ergonomiques, ne parvient pas à séduire le public de connaisseurs.<br />
Ce navigateur met en place un nouveau principe : la définition du mode de rendu. <a title="Les standards selon la firme Redmond" href="http://clearideaz.com/2008/02/les-standards-selon-la-firme-redmond/">Il est possible en effet de choisir entre le mode de rendu IE7 et celui d&#8217;IE8 via une balise meta</a>. Ce principe va à l&#8217;encontre du concept d&#8217;amélioration progressive. On ne devrait pas choisir de développer pour un ancien navigateur.<br />
Autre problème, le support du PNG pourtant bien géré sur IE7 est défaillant sur cette version.</p>
<h3>Une lueur d&#8217;espoir</h3>
<p>Intervient le projet IE9 mené par une équipe renouvelée et des consultants plus jeunes ! À l&#8217;heure où je publie cet article, cette version est encore à l&#8217;état de développement.<br />
Première nouveauté : Microsoft communique largement sur le projet et encourage fortement la communauté à effectuer des retours.<br />
Seconde nouveauté : IE9 se veut respectueux des standards du web. <a title="Interview: Paul Cotton on Microsoft Participation in the W3C HTML Working Group" href="http://www.w3.org/QA/2010/03/interview_paul_cotton_on_micro.html">Microsoft se retrouve désormais contributeur actif du W3C</a>. Ils insistent sur l&#8217;obligation de rendu unique sur l&#8217;ensemble des navigateurs.<br />
Troisième et dernière nouveauté : L&#8217;équipe d&#8217;IE9 a fait beaucoup d&#8217;efforts pour améliorer les performances de son navigateur. Il dispose aujourd&#8217;hui d&#8217;un des plus puissants moteur Javascript (en comparaison avec les moteurs en version définitive et publiés avec des navigateurs stable, hein !).</p>
<p>Mais ce qui est surtout le plus excitant, c&#8217;est le support de nouvelles technologies web. La liste est longue : support de CSS3 (on peut enfin utiliser border-radius, ouais !), moteur de rendu capable d&#8217;interpréter HTML5 ainsi que son API (balise video, audio, geolocalisation, webworkers&#8230;), implémentation de font-face, mise en conformité de l&#8217;interpréteur javascript avec les standards, support de SVG&#8230;<br />
Et dernièrement, <a title="HTML5, Native: Third IE9 Platform Preview Available for Developers" href="http://blogs.msdn.com/b/ie/archive/2010/06/23/html5-native-third-ie9-platform-preview-available-for-developers.aspx">le blog du navigateur Microsoft a annoncé le support de canvas</a> ainsi que la prise en charge du format libre WOFF, on y croyait vraiment plus !</p>
<p>Chose étonnante, le futur navigateur suscite l&#8217;enthousiasme des professionnels (<a title="Internet Explorer 9 is on the boil" href="http://www.stuffandnonsense.co.uk/blog/about/internet_explorer_9_in_on_the_boil/">Andy Clarke</a>, <a title="IE9 preview" href="http://www.zeldman.com/2010/03/16/ie9-preview/">Zeldman</a> ou encore <a title="Five Things IE9 is (Actually) Doing Right" href="http://sixrevisions.com/web-development/five-things-ie9-is-actually-doing-right/">Jason Cube</a> de Six Revision).</p>
<h3>Et finalement&#8230;</h3>
<p>C&#8217;est donc une grande avancée et on s&#8217;imagine déjà développer des sites internet sans avoir à le tester sur 36 navigateurs ! Mais malgré tout, ne fantasmons pas trop vite, le chemin sera encore long et il faudra je pense attendre encore 10 ans avant de pouvoir utiliser pleinement les nouvelles possibilités offertes par HTML5 et CSS3.</p>
<p><em>Edité le 25 juin 2010 à 9 h 33 min : Ajout d&#8217;une petite phrase au sujet de l&#8217;intérêt suscité par le navigateur auprès de professionnels</em><br />
<!--more--></p>
<h3>Un semblant de renouveau</h3>
<p>IE8 succède à la version 7. Les effets d&#8217;annonce de cette version n&#8217;attenueront pas les critiques de la communauté web. Microsoft fait encore une fois cavalier seul. Son navigateur, en dépit de quelques améliorations ergonomiques, ne parvient pas à séduire le public de connaisseurs.<br />
Ce navigateur met en place un nouveau principe : la définition du mode de rendu. <a title="Les standards selon la firme Redmond" href="http://clearideaz.com/2008/02/les-standards-selon-la-firme-redmond/">Il est possible en effet de choisir entre le mode de rendu IE7 et celui d&#8217;IE8 via une balise meta</a>. Ce principe va à l&#8217;encontre du concept d&#8217;amélioration progressive. On ne devrait pas choisir de développer pour un ancien navigateur.<br />
Autre problème, le support du PNG pourtant bien géré sur IE7 est défaillant sur cette version.</p>
<h3>Une lueur d&#8217;espoir</h3>
<p>Intervient le projet IE9 mené par une équipe renouvelée et des consultants plus jeunes ! À l&#8217;heure où je publie cet article, cette version est encore à l&#8217;état de développement.<br />
Première nouveauté : Microsoft communique largement sur le projet et encourage fortement la communauté à effectuer des retours.<br />
Seconde nouveauté : IE9 se veut respectueux des standards du web. <a title="Interview: Paul Cotton on Microsoft Participation in the W3C HTML Working Group" href="http://www.w3.org/QA/2010/03/interview_paul_cotton_on_micro.html">Microsoft se retrouve désormais contributeur actif du W3C</a>. Ils insistent sur l&#8217;obligation de rendu unique sur l&#8217;ensemble des navigateurs.<br />
Troisième et dernière nouveauté : L&#8217;équipe d&#8217;IE9 a fait beaucoup d&#8217;efforts pour améliorer les performances de son navigateur. Il dispose aujourd&#8217;hui d&#8217;un des plus puissants moteur Javascript (en comparaison avec les moteurs en version définitive et publiés avec des navigateurs stable, hein !).</p>
<p>Mais ce qui est surtout le plus excitant, c&#8217;est le support de nouvelles technologies web. La liste est longue : support de CSS3 (on peut enfin utiliser border-radius, ouais !), moteur de rendu capable d&#8217;interpréter HTML5 ainsi que son API (balise video, audio, geolocalisation, webworkers&#8230;), implémentation de font-face, mise en conformité de l&#8217;interpréteur javascript avec les standards, support de SVG&#8230;<br />
Et dernièrement, <a title="HTML5, Native: Third IE9 Platform Preview Available for Developers" href="http://blogs.msdn.com/b/ie/archive/2010/06/23/html5-native-third-ie9-platform-preview-available-for-developers.aspx">le blog du navigateur Microsoft a annoncé le support de canvas</a> ainsi que la prise en charge du format libre WOFF, on y croyait vraiment plus !</p>
<p>Chose étonnante, le futur navigateur suscite l&#8217;enthousiasme des professionnels (<a title="Internet Explorer 9 is on the boil" href="http://www.stuffandnonsense.co.uk/blog/about/internet_explorer_9_in_on_the_boil/">Andy Clarke</a>, <a title="IE9 preview" href="http://www.zeldman.com/2010/03/16/ie9-preview/">Zeldman</a> ou encore <a title="Five Things IE9 is (Actually) Doing Right" href="http://sixrevisions.com/web-development/five-things-ie9-is-actually-doing-right/">Jason Cube</a> de Six Revision).</p>
<h3>Et finalement&#8230;</h3>
<p>C&#8217;est donc une grande avancée et on s&#8217;imagine déjà développer des sites internet sans avoir à le tester sur 36 navigateurs ! Mais malgré tout, ne fantasmons pas trop vite, le chemin sera encore long et il faudra je pense attendre encore 10 ans avant de pouvoir utiliser pleinement les nouvelles possibilités offertes par HTML5 et CSS3.</p>
<p><em>Edité le 25 juin 2010 à 9 h 33 min : Ajout d&#8217;une petite phrase au sujet de l&#8217;intérêt suscité par le navigateur auprès de professionnels</em></p>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2010/06/internet-explorer-9-sur-la-bonne-voie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Détecter le support HTML5 du navigateur via Jquery</title>
		<link>http://clearideaz.com/2010/05/detecter-le-support-html5-du-navigateur-via-jquery/</link>
		<comments>http://clearideaz.com/2010/05/detecter-le-support-html5-du-navigateur-via-jquery/#comments</comments>
		<pubDate>Thu, 20 May 2010 18:05:35 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://clearideaz.com/?p=313</guid>
		<description><![CDATA[Le site Dive into HTML5 a publié récemment un article détaillant les différentes méthodes de détection de fonctionnalités HTML5 sur les navigateurs via Javascript. Utilisateur régulier de jQuery, j&#8217;ai décidé de porter ces scripts au sein de la fonction $.support. Voici la liste des tests possibles : audio, audioMp3, audioVorbis, audioWav, audioAAC, canvas, canvasTxt, command, [...]]]></description>
			<content:encoded><![CDATA[<p>Le site <a title="Dive into HTML5 par Mark Pilgrim" href="http://diveintohtml5.org/everything.html" lang="en">Dive into HTML5</a> a publié récemment un article détaillant les différentes méthodes de détection de fonctionnalités HTML5 sur les navigateurs via Javascript.</p>
<p>Utilisateur régulier de <a href="http://jquery.com" title="Site officiel de la librairie Javascript jQuery" lang="en">jQuery</a>, j&#8217;ai décidé de porter ces scripts au sein de la fonction <a href="http://api.jquery.com/jQuery.support/" title="Documentation de la fonction support de jQuery" lang="en">$.support</a>.</p>
<p>Voici la liste des tests possibles : audio, audioMp3, audioVorbis, audioWav, audioAAC, canvas, canvasTxt, command, datalist, details, device, formConstraints, iframeSandbox, iframeSrcDoc, autofocus, placeholder, color, email, number, range, search, tel, url, date, time, datetime, datetime-local, month, week, meter, output, progress, time, video, videoCaptions, videoPoster, videoWebM, videoH264, videoTheora, contentEditable, dragAndDrop, fileAPI, geoLocation, history, localStorage, microdata, applicationCache, eventSource, sessionStorage, svg, svgInHtml, webSimpleDb, webSocket, openDatabase, webWorkers, undo.</p>
<p>Vous trouverez une démonstration des possibilités offertes par le script sur cette <a href="http://clearideaz.com/demo/jquerySupportHTML5/" title="HTML5 detection with jQuery Support" lang="en">page de test du support HTML5 de votre navigateur</a>.</p>
<p>Si vous souhaitez par exemple tester le support du SVG, insérez la ligne suivante au sein de votre fichier Javascript :</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">support</span>.<span style="color: #660066;">svg</span> <span style="color: #006600; font-style: italic;">// retourne false sur IE et true sur les versions récentes de Firefox</span></pre></div></div>

<p>Le script est léger : 8ko en version source et 3ko en version minifiée.</p>
<p>Vous pouvez télécharger l&#8217;extend jQuery sur <a href="http://github.com/clearideaz/jquerySupportHTML5" title="Espace Github de Clearideaz" lang="en">mon espace Github</a> </p>
<p>N&#8217;hésitez pas à me signaler le moindre bug.</p>
<p>Édit : correction d&#8217;un lien</p>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2010/05/detecter-le-support-html5-du-navigateur-via-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Du Parallax avec jQuery et CSS</title>
		<link>http://clearideaz.com/2008/06/du-parallax-avec-jquery-et-css/</link>
		<comments>http://clearideaz.com/2008/06/du-parallax-avec-jquery-et-css/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 09:12:00 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[parallax]]></category>

		<guid isPermaLink="false">http://www.clearideaz.com/?p=15</guid>
		<description><![CDATA[<p>Le <a href="http://fr.wikipedia.org/wiki/D%C3%A9filement" title="Voir la définition de Scrolling Parallax sur Wikipédia">scrolling parallax</a> est une technique qui consiste a créer un pseudo-effet de 3D sur un environnement en 2D. Si vous avez déjà pu jouer aux premières versions de Sonic The Hedgehog, vous comprendrez de quoi je parle. Je me suis amusé, encore une fois avec JQuery, a créer un effet parallax sur une page d’accueil d’un site existant.</p> <p>J’ai repris la page d’accueil de <a href="http://www.silverbackapp.com" title="Se rendre sur le site SilverBack.com">SilverBackApp.com</a> qui utilise déjà un effet Parallax au redimensionnement du navigateur. La technique très subtile consiste a placer les différentes couches de fonds avec des background-position en pourcentage. En jouant justement sur ces valeurs relatives, on peut de ce fait créer un effet intéressant lorsque l’utilisateur redimensionne sa fenêtre.</p> <p>En partant de cette base, j’ai décidé de rajouter une couche Javascript. Le but est de changer la position du fond en fonction de la position de l’image. Pour cela, on va juste récupérer les positions du pointeur et utiliser ces valeurs pour déterminer le positionnement (en pixel cette fois) des différentes images.</p>]]></description>
			<content:encoded><![CDATA[<p>Le <a title="Voir la définition de Scrolling Parallax sur Wikipédia" href="http://fr.wikipedia.org/wiki/D%C3%A9filement">scrolling parallax</a> est une technique qui consiste a créer un pseudo-effet de 3D sur un environnement en 2D. Si vous avez déjà pu jouer aux premières versions de Sonic The Hedgehog, vous comprendrez de quoi je parle. Je me suis amusé, encore une fois avec JQuery, a créer un effet parallax sur une page d’accueil d’un site existant.</p>
<p>J’ai repris la page d’accueil de <a title="Se rendre sur le site SilverBack.com" href="http://www.silverbackapp.com">SilverBackApp.com</a> qui utilise déjà un effet Parallax au redimensionnement du navigateur. La technique très subtile consiste a placer les différentes couches de fonds avec des background-position en pourcentage. En jouant justement sur ces valeurs relatives, on peut de ce fait créer un effet intéressant lorsque l’utilisateur redimensionne sa fenêtre.</p>
<p>En partant de cette base, j’ai décidé de rajouter une couche Javascript. Le but est de changer la position du fond en fonction de la position de l’image. Pour cela, on va juste récupérer les positions du pointeur et utiliser ces valeurs pour déterminer le positionnement (en pixel cette fois) des différentes images.</p>

<p>On obtiendra avec jQuery ce type de code pour la div #frontvines</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;body&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">mousemove</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#frontvines&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span> 
      backgroundPosition<span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">clientX</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">1.1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">'px 0px'</span>
   <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Sur la première ligne, on cherche l’évènement qui indique que l’utilisateur bouge sa souris sur la page. Dans la partie fonction, on place en paramètre la position du curseur pour la réutiliser ensuite pour modifier les propriétés de styles associées à la balise comportant l&#8217;id #frontvines. Pour observer le résultat, rendez-vous sur la page dédié à cette démonstration <a title="Accéder à la première démonstration" href="http://clearideaz.com/demo/05062008/">disponible ici</a>.</p>
<p>Pour aller plus loin, je me suis amusé, dans une <a title="Accéder à la seconde démonstration" href="http://clearideaz.com/demo/06062008/">seconde démonstration</a>, à réutiliser une photo de paysage pour y introduire du parallax. Le principe reste le même, je vous laisse le soin de télécharger le script sur <a title="Accéder à la seconde démonstration" href="http://clearideaz.com/demo/06062008/">la page de la seconde démonstration</a>, vous y trouverez la manière de procéder dans les commentaires du fichier Javascript.</p>
<h3>Quelques liens en rapport avec Parallax :</h3>
<h4>Effet parallax à l’aide de CSS ou de Javascript</h4>
<ul>
<li><a title="Se rendre sur le site Dumago.net" href="http://dumago.net/">Le futur site de service Dumago.net (CSS)</a></li>
<li><a title="Visiter le site Umaghetzeggen.nl" href="http://www.umaghetzeggen.nl/">Effet parallax aux mouvements de la souris sur Umaghetzeggen.nl (Javascript)</a></li>
<li><a title="Accéder au site Dromaeo.com" href="http://dromaeo.com/">Le site des tests de performances Javascript Dromaeo (CSS)</a></li>
<li><a title="Voir la demo sur le site Dvessel.com" href="http://www.dvessel.com/">Démo expérimentale de footer avec effet de vagues (CSS)</a></li>
</ul>
<h4>Utilisation de parallax sous Flash</h4>
<ul>
<li><a title="Se rendre sur le site ff0000.com" href="http://www.ff0000.com/">Une démo assez bluffante en Flash</a></li>
<li><a title="Se rendre sur le site EffectsCod.com" href="http://www.effectscode.com/ImageEffects/DepthField/XML/">Effet de rotation rendu grâce à parallax</a></li>
<li><a title="Aller sur le site de Aviary" href="http://a.viary.com/">Un header construit en parallax</a></li>
<li><a title="Visiter le site Freedent White" href="http://www.freedentwhite.com/index.php/page/fr">Le site Freedent White</a></li>
</ul>
<h4>Tutorial</h4>
<ul>
<li><a title="Voir le tutos à propos de parallax via CSS " href="http://www.sitepoint.com/blogs/2008/01/18/in-the-lab-doing-strange-things-to-css-backgrounds/">Un tutos sur Sitepoint.com sur les effet parallax en CSS</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2008/06/du-parallax-avec-jquery-et-css/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Une carte Vélib grâce à l&#8217;API Google</title>
		<link>http://clearideaz.com/2008/05/carte-velib-grace-a-lapi-google-et-jquery/</link>
		<comments>http://clearideaz.com/2008/05/carte-velib-grace-a-lapi-google-et-jquery/#comments</comments>
		<pubDate>Fri, 02 May 2008 15:55:00 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[vélib]]></category>

		<guid isPermaLink="false">http://www.clearideaz.com/?p=14</guid>
		<description><![CDATA[Si vous habitez Paris ou si vous ne faites qu&#8217;y travailler (comme moi), vous avez surement déjà eu l&#8217;occasion d&#8217;utiliser le service Vélib. Le site officiel ou d&#8217;autres sites indépendants comme Roulib.fr proposent des cartes permettant d&#8217;afficher le nombre de vélos disponibles ou encore le nombre d&#8217;emplacements restants. Je vous propose de faire la même [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous habitez Paris ou si vous ne faites qu&#8217;y travailler (comme moi), vous avez surement déjà eu l&#8217;occasion d&#8217;utiliser le service Vélib. Le <a href="http://www.velib.paris.fr/" title="Se rendre sur le site officiel du service Vélib">site officiel</a> ou d&#8217;autres sites indépendants comme <a href="http://www.roulib.fr" title="Visiter le site Roulib.fr">Roulib.fr</a> proposent des cartes permettant d&#8217;afficher le nombre de vélos disponibles ou encore le nombre d&#8217;emplacements restants. Je vous propose de faire la même chose grâce à l&#8217;<a href="http://code.google.com/apis/maps/documentation/" title="Voir la page de documentation concernant l'API de Google Maps">API de Google Map</a>.</p>
<p>Le principe est simple. On génère en local un fichier XML à partir du fichier distant présent sur le site officiel Vélib via <abbr title="Hypertext Preprocessor">PHP</abbr>. Une fois cette étape effectuée, on a plus qu&#8217;à charger le fichier xml à l&#8217;aide de <a href="http://fr.wikipedia.org/wiki/JavaScript" title="Se rendre sur la page Wikipédia concernant la définition du Javascript">Javascript.</a></p>
<p><a href="http://clearideaz.com/demo/04062008/" title="Se rendre sur la page de démo du script de la carte Vélib">La page de démonstration du script</a> utilise le framework <a href="http://www.jquery.com" title="Se rendre sur le site officiel de jQuery">jQuery</a> mais vous pourrez trouver dans l&#8217;<a href="http://clearideaz.com/demo/04062008/gmap-velib.zip" title="télécharger directement l'archive depuis cette page">archive</a> une version en javascript pur et une autre version associée à l&#8217;autre framework <a href="http://www.prototypejs.org/" title="Visiter le site officiel du framework Prototype">Prototype</a> (Merci d&#8217;ailleurs à <a href="http://www.sunfox.org/" title="Voir le fabuleux blog de mon escroc de collègue Sunny">Sunny</a> pour son aide <img src='http://clearideaz.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p>Vous trouverez toutes les informations nécessaires dans les commentaires des différents fichiers javascript. N&#8217;oubliez pas d&#8217;aller <a href="http://code.google.com/apis/maps/signup.html" title="Se rendre sur le site Google Map pour obtenir une clé API">générer une clé API Google Map</a> sur le site dédié.</p>
<p>Pour pouvoir accéder à la carte et télécharger le script associé, rendez-vous sur <a href="http://clearideaz.com/demo/04062008/" title="Se rendre sur la page de démo du script de la carte Vélib">la page de démo du script de carte Vélib</a>. L&#8217;archive contient le script php pour générer les fichiers xml de la carte Vélib et des informations associées à chaque borne, les fichiers Javascript correspondants, la feuille de style <abbr title="Cascading Style Sheet">CSS</abbr> et les images requises.</p>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2008/05/carte-velib-grace-a-lapi-google-et-jquery/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Viva jQuery et mon livre de chevet !</title>
		<link>http://clearideaz.com/2008/02/viva-jquery-et-mon-livre-de-chevet/</link>
		<comments>http://clearideaz.com/2008/02/viva-jquery-et-mon-livre-de-chevet/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 08:56:00 +0000</pubDate>
		<dc:creator>Olivier G.</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[effets]]></category>
		<category><![CDATA[eyrolles]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[livre]]></category>
		<category><![CDATA[plugins]]></category>

		<guid isPermaLink="false">http://www.clearideaz.com/?p=13</guid>
		<description><![CDATA[Plus je m&#8217;intéresse à jQuery et plus je me rend compte des possibilités étendues de ce framework javascript. Je suis parfois bluffé par les effets visuels qu&#8217;il peut générer. Sur Dragon Interactive, on a presque l&#8217;impression de visiter un site à base d&#8217;animations flash mais il n&#8217;en est rien. C&#8217;est l&#8217;utilisation judicieuse des fonctions fadeIn() [...]]]></description>
			<content:encoded><![CDATA[<p>Plus je m&#8217;intéresse à jQuery et plus je me rend compte des possibilités étendues de ce framework javascript. Je suis parfois bluffé par les effets visuels qu&#8217;il peut générer. Sur <a title="Se rendre sur le site de Dragon Interactive" href="http://dragoninteractive.com">Dragon Interactive</a>, on a presque l&#8217;impression de visiter un site à base d&#8217;animations flash mais il n&#8217;en est rien. C&#8217;est l&#8217;utilisation judicieuse des fonctions fadeIn() et fadeOut() qui donne cette sensation. <a title="Voir la liste officielle de plugins jQuery" href="http://plugins.jquery.com/">Bon nombre de plugins</a> viennent ajouter à ce framework d&#8217;autres fonctionnalités de la plus intéressante à la plus farfelue. Je suis récemment tombé sur <a title="Se rendre sur la page dédiée au plugin jCycle" href="http://www.malsup.com/jquery/cycle/">le plugin jCycle</a> qui permet des effets de transitions d&#8217;images assez intéressants.</p>
<p>De part l&#8217;intéret grandissant pour cette librairie javascript, j&#8217;ai décidé de casser ma tirelire pour m&#8217;acheter le livre <em>Premières applications Web 2.0 avec Ajax et PHP</em> de Jean-Marie Defrance et paru aux éditions Eyrolles. Ce n&#8217;est pas un ouvrage qui traite véritablement de la bibliothèque jQuery mais il consacre tout de même deux grands chapitres qui permettent d&#8217;apprivoiser la bête. A lire donc de toute urgence <img src='http://clearideaz.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Pour en savoir plus :</strong></p>
<ul>
<li><a title="Se rendre sur le site web du framework jQuery" href="http://www.jquery.com">Le site officiel de jQuery</a></li>
<li><a title="Se rendre sur le site web Visual jQuery" href="http://visualjquery.com/">Présentation des fonctions essentielles de jQuery</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://clearideaz.com/2008/02/viva-jquery-et-mon-livre-de-chevet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

