{"id":734,"date":"2008-12-29T22:32:22","date_gmt":"2008-12-29T20:32:22","guid":{"rendered":"http:\/\/nyams.planbweb.com\/blog\/?p=734"},"modified":"2008-12-29T22:32:22","modified_gmt":"2008-12-29T20:32:22","slug":"effet-carrousel-via-jquery","status":"publish","type":"post","link":"https:\/\/nyamsprod.com\/blog\/effet-carrousel-via-jquery\/","title":{"rendered":"Effet carousel via jQuery"},"content":{"rendered":"<div class=\"message warning\">\n<p><strong>Attention:<\/strong> Les informations de ce billet sont susceptibles d'&ecirc;tre obsol&egrave;tes car vieux de plus 2 ans.<\/p>\n<p><strong>Warning: <\/strong> The information you are reading may be obsolete, this post was published more than 2 years ago.<\/p>\n<\/div><p>Ces derniers temps je me suis mis \u00e0 bidouiller des scripts en me basant sur jQuery. Je vous pr\u00e9sente le premier fruit de ce bidouillage : <code>simpleCarousel<\/code>. Ce plugin permet tr\u00e8s simplement de mettre en place un effet carrousel sur une liste d&#8217;image. Ce script utilise du HTML, relev\u00e9 \u00e0 l&#8217;aide d&#8217;une pinc\u00e9e de CSS, le tout saupoudr\u00e9 d&#8217;une bonne dose de javascript via l&#8217;utilisation de jQuery.<!--more--><\/p>\n<p>1\u00b0) le HTML. tr\u00e8s simplement on utilisera un balise <code>div<\/code> auquel on assigne un attribut <code>id<\/code> unique. Cette balise va contenir une liste non-ordonn\u00e9e d&#8217;image sur laquelle l&#8217;effet carousel sera appliqu\u00e9e. Ensuite on termine, par ajouter dans la page les balises qui serviront \u00e0 faire bouger vers la droite ou vers la gauche le carrousel. <em>A noter que l&#8217;on peut ajouter autant de bouton de navigation que l&#8217;on veut vue que le script va cibler l&#8217; attribut <code>class<\/code> des balises et non un <code>id<\/code> particulier.<\/em> Et c&#8217;est tout pour le HTML vous devriez avoir un code source HTML de ce type:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">&lt;div id=&quot;id_unique&quot;&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;img src=&quot;\/path\/to\/my\/images&quot; alt=&quot;&quot; title=&quot;titre de l&#039;image 1&quot; \/&gt;&lt;\/li&gt;\n&lt;li&gt;&lt;img src=&quot;\/path\/to\/my\/images&quot; alt=&quot;&quot; title=&quot;titre de l&#039;image 2&quot; \/&gt;&lt;\/li&gt;\n&lt;li&gt;&lt;img src=&quot;\/path\/to\/my\/images&quot; alt=&quot;&quot; title=&quot;titre de l&#039;image 3&quot; \/&gt;&lt;\/li&gt;\n&lt;li&gt;&lt;img src=&quot;\/path\/to\/my\/images&quot; alt=&quot;&quot; title=&quot;titre de l&#039;image 4&quot; \/&gt;&lt;\/li&gt;\n&lt;\/ul&gt;\n&lt;\/div&gt;\n&lt;p&gt;&lt;span class=&quot;move-left&quot;&gt;\u00ab pr\u00e9c\u00e9dent&lt;\/span&gt;\u00a0|\u00a0&lt;span class=&quot;move-right&quot;&gt;suivant \u00bb&lt;\/span&gt;&lt;\/p&gt;<\/pre>\n<p>2\u00b0) Maintenant on ajoute le CSS qui va bien. Le script va g\u00e9n\u00e9r\u00e9 automatiquement l&#8217;ajout d&#8217;un titre \u00e0 chaque image correspondant \u00e0 la valeur de l&#8217;attribut <code>title<\/code> de l&#8217;image si celle-ci en poss\u00e8de un. Le titre sera compris dans une balise <code>em<\/code> qui suivra directement l&#8217;image utilis\u00e9e pour la g\u00e9n\u00e9rer. En utilisant le CSS on pourra mettre en valeur ce titre et \u00e9galement, par exemple, ajouter un effet lorsque l&#8217;on survole une image et pourquoi pas mettre en \u00e9vidence les balises de navigation, ce qui peut donner par exemple :<\/p>\n<pre class=\"brush: css; title: ; notranslate\" title=\"\">#id_unique li img { border:2px solid #fff; }\n#id_unique li:hover img { border:2px solid #fb6f3a; }\n#id_unique li em { display:block; text-align:center; }\n#id_unique li:hover em { color:#fb6f3a; }\n.move-left, .move-right { background:transparent; color:#fb6f3a; cursor:pointer; }\n<\/pre>\n<p>3\u00b0) Lorsque tout est pr\u00e8s, on compl\u00e8te le tableau avec l&#8217;ajout du Javascript via jQuery. On charge <code>jQuery<\/code> et mon plugin <code>simpleCarousel<\/code> :<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">&lt;script type=&quot;text\/javascript&quot; src=&quot;\/path\/to\/jquery.js?v=1.26&quot;&gt;&lt;\/script&gt;\n&lt;script type=&quot;text\/javascript&quot; src=&quot;\/path\/to\/simpleCarousel.js&quot;&gt;&lt;\/script&gt;\n&lt;script type=&quot;text\/javascript&quot;&gt;\njQuery(function($) {\nvar params = {&#039;imgWidth&#039; : 160, &#039;btnLeft&#039; : &#039;move-left&#039;, &#039;btnRight&#039; : &#039;move-right&#039;, &#039;nbViewItems&#039; : 2, &#039;nbScrollItems&#039; : 2, &#039;speed&#039; : 1500 };\n$(&#039;#onepiece&#039;).simpleCarousel(params);\n});\n&lt;\/script&gt;<\/pre>\n<p>Les param\u00e8tres sont assez simples et intuitifs<em> (du moins je l&#8217;esp\u00e8re)<\/em> :<\/p>\n<ul>\n<li><code>imgWidth<\/code> : la taille en pixel\u00a0 de la largeur des images ;<\/li>\n<li><code>btnLeft<\/code> : la classe de l&#8217;\u00e9l\u00e9ment qui va permettre le d\u00e9filement de l&#8217;animation vers la gauche ;<\/li>\n<li><code>btnRight<\/code> : la classe de l&#8217;\u00e9l\u00e9ment qui va permettre le d\u00e9filement de l&#8217;animation vers la droite ;<\/li>\n<li><code>nbViewItems<\/code> : nombre d&#8217;items \u00e0 montrer;<\/li>\n<li><code>nbScrollItems<\/code> : nombre d&#8217;items que l&#8217;on va faire d\u00e9filer ;<\/li>\n<li><code>speed<\/code> : d\u00e9termine la vitesse de d\u00e9filement (exprim\u00e9e en millisecondes);<\/li>\n<\/ul>\n<p>Et voila ce qu&#8217;il fallait d\u00e9montrer et comme un exemple vaut mieux que 10000 lignes d&#8217;explication, voici <a title=\"Exemple d'utilisation de simpleCarrousel\" href=\"http:\/\/nyams.planbweb.com\/test\/carrousel\/new.html\">simpleCarousel en action<\/a>.<\/p>\n<p>t\u00e9l\u00e9charger <a title=\"le plugin jQuery : simpleCarrousel.js\" href=\"http:\/\/nyams.planbweb.com\/test\/carrousel\/jquery.simpleCarousel.js\">simpleCarousel<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mon premier plugin jQuery simpleCarousel<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5],"tags":[79,135,208,253,292,305,421,488],"class_list":["post-734","post","type-post","status-publish","format-standard","hentry","category-web","tag-browser","tag-css","tag-framework","tag-html","tag-javascript","tag-jquery","tag-plugin","tag-simplecarrousel"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/posts\/734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/comments?post=734"}],"version-history":[{"count":0,"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/posts\/734\/revisions"}],"wp:attachment":[{"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/media?parent=734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/categories?post=734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/tags?post=734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}