<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:cc="http://backend.userland.com/creativeCommonsRssModule"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    
	<channel>
		<title>Gastero Prod - Tags - Javascript</title>
		<link>http://www.gasteroprod.com/../../../tags/javascript</link>
		<description></description>
		<image>
			<url>http://www.gasteroprod.com/design/images/button_gasteroprod.png</url>
			<width>80</width>
			<height>15</height>
			<title>Gastero Prod</title>
			<link>http://www.gasteroprod.com/</link>
		</image>
		<language>fr</language>
		<generator>SPIP 1.9.3 dev</generator>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<ttl>60</ttl>
		<cc:license>http://creativecommons.org/licenses/by-nc-sa/1.0/</cc:license>
		
		<item>
			<title>Les carrousels en 3D sont &#224; la mode</title>
			<link>http://www.gasteroprod.com/../../../blog/les-carrousels-en-3d-sont-a-la-mode.html</link>
			<description><![CDATA[
        <div id="contentbox">
        	<div class="chapo" style="font-weight: bolder;"><p>J&#8217;ai vu apparaître ces derniers jours des carrousels en 3D sur les pages des sites de vente en ligne <a href="http://www.amazon.fr/" class="spip_out">Amazon</a> et <a href="http://www.alapage.com/" class="spip_out">Alapage</a>, drôle de coïncidence&nbsp;!</p></div>
        	<div><p><span class='spip_document_432 spip_documents spip_documents_right'  style='float:right; width:155px;'>
<img src='http://www.gasteroprod.com/IMG/png/manege-carrousel.png' width="155" height="119" alt="" /></span>
D&#8217;après <a href="http://fr.wikipedia.org/" class="spip_out">Wikipedia</a>, un carrousel est &mdash; <a href="http://fr.wikipedia.org/wiki/Carrousel" class="spip_out">notamment</a> &mdash; &#171;&nbsp;<a href="http://fr.wikipedia.org/wiki/Carrousel_%28loisir%29" class="spip_out">une attraction de type manège consistant en une plateforme tournante avec des sièges pour des passagers</a>&nbsp;&#187;, c&#8217;est à dire ni plus ni moins qu&#8217;un manège.</p>

<p><span class='spip_document_426 spip_documents spip_documents_left'  style='float:left; width:150px;'>
<img src='http://www.gasteroprod.com/IMG/jpg/projecteur-diapos-carrousel.jpg' width="150" height="105" alt="" /></span>
Ce terme est aussi utilisé en photographie pour désigner les bacs circulaires que l&#8217;on utilise avec les projecteurs de diapositives, ou en musique pour désigner les supports des disques dans les jukeboxes.</p>

<p>Au niveau des interfaces graphiques, la navigation dans une liste représentée par un carrousel en 3 dimensions fait petit à petit son chemin. Elle donne une impression de manipulation physique des objets qui améliore l&#8217;ergonomie et l&#8217;intuitivité de l&#8217;interface.</p>

<p>Apple l&#8217;a bien compris en rachetant <a href="http://www.apple.com/itunes/jukebox/coverflow.html" class="spip_out">CoverFlow</a>, un carrousel &mdash; non circulaire celui-ci &mdash; permettant de sélectionner de la musique dans iTunes en visualisant les pochettes&nbsp;:</p>
<dl class='spip_document_431 spip_documents spip_documents_center' >
<dt><a href="http://www.gasteroprod.com/IMG/png/apple-itunes-coverflow.png" title='PNG - 522.7 ko' type="image/png"><img src='http://www.gasteroprod.com/local/cache-vignettes/L400xH173/apple-itunes-coverflow-d7085.png' width='400' height='173' alt='PNG - 522.7 ko' /></a></dt>
<dt class='spip_doc_titre' style='width:350px;'><strong>CoverFlow</strong></dt>
<dd class='spip_doc_descriptif' style='width:350px;'>Navigation en 3D dans la discothèque iTunes
</dd>
</dl>
<p>Microsoft a aussi fait la démonstration des capacités 3D de Windows Presentation Foundation et de Silverlight &mdash; dans <a href="http://www.popfly.com/" class="spip_out">Popfly</a> par exemple &mdash; à l&#8217;aide de carrousels.</p>

<p>Le carrousel d&#8217;Amazon est en Flash, une technologie vectorielle, et donc particulièrement bien adaptée à la simulation de la 3D par déformation&nbsp;:</p>

<dl class='spip_document_427 spip_documents spip_documents_center' >
<dt><a href="http://www.gasteroprod.com/IMG/png/caroussel-3d-amazon.png" title='PNG - 132.2 ko' type="image/png"><img src='http://www.gasteroprod.com/local/cache-vignettes/L400xH144/caroussel-3d-amazon-5717c.png' width='400' height='144' alt='PNG - 132.2 ko' /></a></dt>
<dt class='spip_doc_titre' style='width:350px;'><strong>Le carrousel d&#8217;Amazon</strong></dt>
</dl>
<p>Mais il n&#8217;est pas nécessaire de disposer d&#8217;une technologie spécifiquement dédiée ou adaptée à la 3D pour réaliser de tels carrousels, comme le montre aujourd&#8217;hui Alapage&nbsp;:</p>

<dl class='spip_document_430 spip_documents spip_documents_center' >
<dt><a href="http://www.gasteroprod.com/IMG/png/carroussel-3d-alapage-3.png" title='PNG - 196.7 ko' type="image/png"><img src='http://www.gasteroprod.com/local/cache-vignettes/L400xH131/carroussel-3d-alapage-3-e9537.png' width='400' height='131' alt='PNG - 196.7 ko' /></a></dt>
<dt class='spip_doc_titre' style='width:350px;'><strong>Le carrousel d&#8217;Alapage</strong></dt>
</dl>
<p>Ce carrousel s&#8217;appuie tout simplement sur l&#8217;élément &#171;&nbsp;<a href="http://interface.eyecon.ro/docs/carousel" class="spip_out">3D Carousel</a>&nbsp;&#187; de l&#8217;excellent plugin <a href="http://interface.eyecon.ro/" class="spip_out">Interface</a> de la <a href="http://www.jquery.com/" class="spip_out">librairie JavaScript jQuery</a>.</p></div>
        	
        	
        </div>
        ]]></description>
			<pubDate>Mon, 06 Aug 2007 19:45:00 +0100</pubDate>
			
				<category>ergonomie</category>
			
				<category>jQuery</category>
			
				<category>Javascript</category>
			
			<guid isPermaLink="true">../../../blog/les-carrousels-en-3d-sont-a-la-mode.html</guid>
			<dc:creator>Nicolas Hoizey</dc:creator>
  		<dc:format>text/html</dc:format>
			<dc:language>fr</dc:language>
			<comments>http://www.gasteroprod.com/../../../blog/les-carrousels-en-3d-sont-a-la-mode.html#commentaires</comments>
			<wfw:commentRss>http://www.gasteroprod.com/rss/commentaires/les-carrousels-en-3d-sont-a-la-mode-618.rss</wfw:commentRss>
		</item>
		
		<item>
			<title>Les commentaires sur les articles sont maintenant disponibles par discussion ou ordre chronologique, au choix !</title>
			<link>http://www.gasteroprod.com/../../../blog/les-commentaires-sur-les-articles-sont-maintenant-disponibles-par-discussion-ou-ordre-chronologique-au-choix.html</link>
			<description><![CDATA[
        <div id="contentbox">
        	<div class="chapo" style="font-weight: bolder;"><p>Certain(e)s d&#8217;entre vous préfèrent lire les commentaires sur les articles par ordre chronologique, comme c&#8217;est obligatoirement le cas avec certains outils de gestion de contenus Web, et d&#8217;autres, habitués aux forums, préfèrent suivre les enchainements de discussions&nbsp;[<a href="http://www.gasteroprod.com/#nb1" name="nh1" id="nh1" class="spip_note" rel="footnote" title='[1] On parle en anglais de threads' >1</a>].</p></div>
        	<div><p>Je suis plutôt de la seconde catégorie, et ça tombe bien parce que SPIP le permet, donc c&#8217;est ce que j&#8217;avais toujours proposé sur Gastero Prod.</p>

<p>Maintenant, si vous avez Javascript activé, vous allez pouvoir choisir vous-même comment vous souhaitez lire les commentaires&nbsp;!</p>

<p><span class='spip_document_416 spip_documents spip_documents_center' >
<img src='http://www.gasteroprod.com/IMG/png/Image_1.png' width="441" height="132" alt="" /></span></p>

<p>Tout cela est rendu possible par la librairie Javascript magique <a href="http://www.jquery.com/" class="spip_out">jQuery</a>, qui me permet d&#8217;ajouter ce fonctionnement de manière non intrusive en Ajax.</p></div>
        	
        	<div class="info" style="border: 1px solid #333;"><p>[<a href="http://www.gasteroprod.com/#nh1" name="nb1" class="spip_note" title="Notes 1" rev="footnote">1</a>] On parle en anglais de <i>threads</i></p></div>
        </div>
        ]]></description>
			<pubDate>Fri, 06 Jul 2007 19:49:00 +0100</pubDate>
			
				<category>SPIP</category>
			
				<category>Gastero Prod</category>
			
				<category>jQuery</category>
			
				<category>Javascript</category>
			
			<guid isPermaLink="true">../../../blog/les-commentaires-sur-les-articles-sont-maintenant-disponibles-par-discussion-ou-ordre-chronologique-au-choix.html</guid>
			<dc:creator>Nicolas Hoizey</dc:creator>
  		<dc:format>text/html</dc:format>
			<dc:language>fr</dc:language>
			<comments>http://www.gasteroprod.com/../../../blog/les-commentaires-sur-les-articles-sont-maintenant-disponibles-par-discussion-ou-ordre-chronologique-au-choix.html#commentaires</comments>
			<wfw:commentRss>http://www.gasteroprod.com/rss/commentaires/les-commentaires-sur-les-articles-sont-maintenant-disponibles-par-discussion-ou-ordre-chronologique-au-choix-610.rss</wfw:commentRss>
		</item>
		
		<item>
			<title>Comment d&#233;finir dans jQuery ses propres filtres de s&#233;lection</title>
			<link>http://www.gasteroprod.com/../../../blog/comment-definir-dans-jquery-ses-propres-filtres-de-selection.html</link>
			<description><![CDATA[
        <div id="contentbox">
        	<div class="chapo" style="font-weight: bolder;"><p><i>Article initialement publié dans <a href="http://www.clever-age.com/veille/blog/comment-definir-dans-jquery-ses-propres-filtres-de-selection.html" class="spip_out">le weblog de Clever Age</a>.</i></p>

<p>La librairie Javascript <a href="http://jquery.com/" class="spip_out">jQuery</a> est en train de se répandre à grande vitesse, mais malgré une <a href="http://docs.jquery.com/Main_Page" class="spip_out">documentation</a> assez complète, certains points restent obscurs. Voici par exemple comment créer votre propre filtre de sélection.</p></div>
        	<div><p>Le besoin particulier qui m&#8217;a conduit à trouver la solution que je vais exposer ici est de sélectionner des éléments dont le contenu texte est exactement égal à une chaine de caractères donnée.</p>

<p>jQuery propose le filtre <a href="http://docs.jquery.com/DOM/Traversing#contains.28_str_.29" class="spip_out"><code class='spip_code' dir='ltr'>contains()</code></a> qui permet d&#8217;identifier des éléments qui contiennent la chaine de caractères &#8217;text&#8217;, de l&#8217;une des manières suivantes&nbsp;:</p>

<div class="coloration_code"><div class="spip_javascript code"><br />
$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'element'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">contains</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'text'</span><span style="color: #66cc66;">&#41;</span>...<br />
$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'element:contains(text)'</span><span style="color: #66cc66;">&#41;</span>...<br />
&nbsp;</div><div class='code_download'
		style='text-align: right;'>
		<a href='http://www.gasteroprod.com/local/cache-code/7bf07c05ecabf02c38920bf62e907a15.txt'
		style='font-family: verdana, arial, sans; font-weight: bold; font-style: normal;'>telecharger</a></div></div>
<p>Malheureusement, ce filtre ne permet pas d&#8217;identifier des éléments qui contiennent exactement la chaine <code class='spip_code' dir='ltr'>'text'</code>, donc il faut le faire soit-même.</p>

<p>La solution directe, sans étendre jQuery, est d&#8217;utiliser <a href="http://docs.jquery.com/DOM/Traversing#filter.28_expression_.29" class="spip_out"><code class='spip_code' dir='ltr'>filter()</code></a>&nbsp;:</p>

<div class="coloration_code"><div class="spip_javascript code"><br />
$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'element'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">filter</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> $<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">text</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> == <span style="color: #3366CC;">'text'</span>;<br />
<span style="color: #66cc66;">&#125;</span><br />
&nbsp;</div><div class='code_download'
		style='text-align: right;'>
		<a href='http://www.gasteroprod.com/local/cache-code/0ea3b5ba9cd5f3f9ce19e0d505adcd8c.txt'
		style='font-family: verdana, arial, sans; font-weight: bold; font-style: normal;'>telecharger</a></div></div>
<p>Si cela est réalisable une ou deux fois dans un code relativement peu volumineux, il devient vite pénible de recopier tout ce code pour une opération qu&#8217;on imaginerait plus simple.</p>

<p>Heureusement, il est possible d&#8217;<a href="http://docs.jquery.com/Plugins/Authoring" class="spip_out">étendre jQuery</a>, soit par des plugins soit <a href="http://docs.jquery.com/Plugins/Authoring#Using_jQuery.extend_to_extend_jQuery_itself" class="spip_out">directement jQuery lui-même</a> et ses éléments, dont ses filtres. Cette dernière possibilité n&#8217;est par contre pas bien &mdash; voire pas du tout&nbsp;[<a href="http://www.gasteroprod.com/#nb1-1" name="nh1-1" id="nh1-1" class="spip_note" rel="footnote" title='[1] Esp&#233;rons juste que cette absence de documentation n&#39;implique pas une (...)' >1</a>] &mdash; documentée.</p>

<p>Voici ce que ça donne pour le besoin particulier exprimé précédemment&nbsp;:</p>

<div class="coloration_code"><div class="spip_javascript code"><br />
jQuery.<span style="color: #006600;">extend</span><span style="color: #66cc66;">&#40;</span>jQuery.<span style="color: #006600;">expr</span><span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">':'</span><span style="color: #66cc66;">&#93;</span>, <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp;containsExactly: <span style="color: #3366CC;">&quot;$(a).text() == m[3]&quot;</span><br />
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp;</div><div class='code_download'
		style='text-align: right;'>
		<a href='http://www.gasteroprod.com/local/cache-code/60880c1477327c0f6ee451105fecd291.txt'
		style='font-family: verdana, arial, sans; font-weight: bold; font-style: normal;'>telecharger</a></div></div>
<p>Une fois ceci fait, il est possible de filtrer les éléments de la manière suivante&nbsp;:</p>

<div class="coloration_code"><div class="spip_javascript code"><br />
$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'element:containsExactly(text)'</span><span style="color: #66cc66;">&#41;</span>...<br />
&nbsp;</div><div class='code_download'
		style='text-align: right;'>
		<a href='http://www.gasteroprod.com/local/cache-code/f5f5c61feee6ec6378b1289cf8baa0b2.txt'
		style='font-family: verdana, arial, sans; font-weight: bold; font-style: normal;'>telecharger</a></div></div>
<p>Simple, n&#8217;est-ce pas&nbsp;?</p>

<p>Ce qu&#8217;il faut savoir pour écrire ses propres filtres est surtout la définition des variables disponibles. Vous avez sans doute vu ces étranges <code class='spip_code' dir='ltr'>a</code> et <code class='spip_code' dir='ltr'>m[3]</code> dans le code ci-dessus. La première impression pourrait être que cela ne permet de filtrer que les éléments de type lien &mdash; balise <code class='spip_code' dir='ltr'>&lt;a&gt;</code> &mdash; mais il n&#8217;en est rien, ce <code class='spip_code' dir='ltr'>a</code> n&#8217;est qu&#8217;un nom de variable.</p>

<p>Voici donc la fameuse liste des variables, grâce à ce <a href="http://www.mail-archive.com/discuss@jquery.com/msg15863.html" class="spip_out">mail de Danny Wachsstock sur la liste de discussion jQuery</a>&nbsp;:</p>

<ul class="spip"><li> <code class='spip_code' dir='ltr'>a</code> pour l&#8217;élément à filtrer</li><li> <code class='spip_code' dir='ltr'>m[3]</code> pour ce qui est entre parenthèses dans le sélecteur</li><li> <code class='spip_code' dir='ltr'>i</code> pour l&#8217;index de l&#8217;élément à filtrer</li><li> <code class='spip_code' dir='ltr'>r</code> pour le tableau complet d&#8217;éléments</li></ul>
<p>Comme indiqué dans le mail cité précédemment, vous trouverez de nombreux exemples dans cette <a href="http://www.softwareunity.com/sandbox/JQueryMoreSelectors/" class="spip_out">liste de sélecteurs aditionnels</a>.</p>

<p>A vous de jouer&nbsp;!</p></div>
        	
        	<div class="info" style="border: 1px solid #333;"><p>[<a href="http://www.gasteroprod.com/#nh1-1" name="nb1-1" class="spip_note" title="Notes 1-1" rev="footnote">1</a>] Espérons juste que cette absence de documentation n&#8217;implique pas une pérennité douteuse</p></div>
        </div>
        ]]></description>
			<pubDate>Thu, 05 Jul 2007 15:23:12 +0100</pubDate>
			
				<category>d&#233;veloppement</category>
			
				<category>Clever Age</category>
			
				<category>jQuery</category>
			
				<category>Javascript</category>
			
			<guid isPermaLink="true">../../../blog/comment-definir-dans-jquery-ses-propres-filtres-de-selection.html</guid>
			<dc:creator>Nicolas Hoizey</dc:creator>
  		<dc:format>text/html</dc:format>
			<dc:language>fr</dc:language>
			<comments>http://www.gasteroprod.com/../../../blog/comment-definir-dans-jquery-ses-propres-filtres-de-selection.html#commentaires</comments>
			<wfw:commentRss>http://www.gasteroprod.com/rss/commentaires/comment-da-c-finir-dans-jquery-ses-propres-filtres-de-sa-c-lection-611.rss</wfw:commentRss>
		</item>
		
		<item>
			<title>Nostalgie ...</title>
			<link>http://www.gasteroprod.com/../../../blog/nostalgie.html</link>
			<description><![CDATA[
        <div id="contentbox">
        	<div class="chapo" style="font-weight: bolder;"><p>Grâce à <a href="http://groups.google.com/" class="spip_out">Google Groups</a>, sorti récemment en version <i>beta</i>&nbsp;[<a href="http://www.gasteroprod.com/#nb2-1" name="nh2-1" id="nh2-1" class="spip_note" rel="footnote" title='[1] Alors que je l&#39;utilisais d&#233;j&#224; occasionnellement depuis longtemps, donc ils (...)' >1</a>], j&#8217;ai retrouvé la trace de mes premiers pas sur les newsgroups, le 12 décembre 1996&nbsp;!</p></div>
        	<div><p>Ces deux premiers messages montrent bien mon attachement à deux sujets qui me sont toujours chers&nbsp;:</p>

<ul class="spip"><li> la création Web avec un message sur le <a href="http://groups-beta.google.com/group/comp.lang.javascript/browse_thread/thread/b8f71a00dcba8c29?tvc=2&amp;q=hoizey#" class="spip_out">changement de couleur de fond de page avec Javascript</a> dans <a href="http://www.gasteroprod.com/news:comp.lang.javascript" class="spip_out">comp.lang.javascript</a>&nbsp;[<a href="http://www.gasteroprod.com/#nb2-2" name="nh2-2" id="nh2-2" class="spip_note" rel="footnote" title='[2] Quelle h&#233;r&#233;sie, quand j&#39;y pense ...' >2</a>]</li><li> le cinéma avec un message sur les <a href="http://groups-beta.google.com/group/fr.rec.cinema.discussion/browse_thread/thread/a69946e3d6aae816/18028491a8454983?q=hoizey+woo&amp;_done=%2Fgroups%3Fq%3Dhoizey+woo%26Submit3%3DSearch+Groups%26&amp;_doneTitle=Back+to+Search&amp;&amp;d#18028491a8454983" class="spip_out">musiques des films de John Woo</a> dans <a href="http://www.gasteroprod.com/news:fr.rec.cinema.discussion" class="spip_out">fr.rec.cinema.discussion</a></li></ul>
<p>Je n&#8217;utilise plus les newsgroups depuis quelque temps maintenant, trouvant plutôt sur le Web les réponses à mes questions, mais j&#8217;y retournerais un jour, c&#8217;est sûr ...</p></div>
        	
        	<div class="info" style="border: 1px solid #333;"><p>[<a href="http://www.gasteroprod.com/#nh2-1" name="nb2-1" class="spip_note" title="Notes 2-1" rev="footnote">1</a>] Alors que je l&#8217;utilisais déjà occasionnellement depuis longtemps, donc ils ont dû changer complètement leur système...</p><p>[<a href="http://www.gasteroprod.com/#nh2-2" name="nb2-2" class="spip_note" title="Notes 2-2" rev="footnote">2</a>] Quelle hérésie, quand j&#8217;y pense ...</p></div>
        </div>
        ]]></description>
			<pubDate>Wed, 26 Jan 2005 07:49:48 +0100</pubDate>
			
				<category>moi</category>
			
				<category>cin&#233;ma</category>
			
				<category>Google</category>
			
				<category>Internet</category>
			
				<category>Javascript</category>
			
			<guid isPermaLink="true">../../../blog/nostalgie.html</guid>
			<dc:creator>Nicolas Hoizey</dc:creator>
  		<dc:format>text/html</dc:format>
			<dc:language>fr</dc:language>
			<comments>http://www.gasteroprod.com/../../../blog/nostalgie.html#commentaires</comments>
			<wfw:commentRss>http://www.gasteroprod.com/rss/commentaires/nostalgie-440.rss</wfw:commentRss>
		</item>
		
	</channel>
    
</rss>