Speak English? Click here to read my English blog!

SmoothGallery 2.0: Gallerie d’images en Javascript

Posté par jbj le 29 mar 2008 dans Javascript/Ajax36 commentaires

Il existe quantité de scripts Javascript dévoués à la création de galerie d'images, mais celui-ci à particulièrement retenu mon attention. Basé sur l'excellent Mootools, SmoothGallery permet de créer une galerie d'images très moderne. Bonne nouvelle, il existe également un plugin Wordpress basé sur ce script et offrant la possibilité de mettre en lumière vos meilleurs articles.

SmoothGallery

Qu'on se le dise, SmoothGallery est vraiment représentatif des possibilités offertes par les frameworks Javascript tel que Mootools ou encore JQuery. Il y a quelques années, ce genre de galerie n'aurait été réalisable qu'avec du Flash, balourd et mal optimisé pour le référencement. Désormais, grâce à Mootools, nous allons pouvoir créer une galerie d'images aux effets de toute beauté.
Comme je suis sûr que vous êtes impatient de voir à quoi cela ressemble, je vous invite donc à aller voir de ce pas la page de démonstration sur le site de Jonathan Schemoul, créateur de SmoothGallery.

smoothgallery-mootools.png

Convaincu ? Dans ce cas, il ne reste plus qu'à mettre le script en place sur votre site, ce qui est d'une simplicité enfantine. Après avoir téléchargé et décompressé l'archive, éditez le fichier dans lequel vous souhaitez voir apparaitre la gallerie et incluez les deux fichiers Javascript ainsi que la feuille de style css :

<script src="scripts/mootools.v1.11.js" type="text/javascript"></script>
<script src="scripts/jd.gallery.js" type="text/javascript"></script>
<link rel="stylesheet" href="css/jd.gallery.css" type="text/css" media="screen" />

Désormais, nous allons inclure le xhtml de la galerie. Le code ci-dessous listera deux images différentes. Si vous souhaitez en mettre davantage, rajoutez un div imageElement pour chaque nouvelle image.

<div id="myGallery">
    <div class="imageElement">
        <h3>Titre du premier item</h3>
        <p>Description du premier item</p>
        <a href="mypage1.html" title="open image" class="open"></a>
        <img src="images/brugges2006/1.jpg" class="full" />
        <img src="images/brugges2006/1-mini.jpg" class="thumbnail" />
    </div>
    <div class="imageElement">
        <h3>Titre du second item</h3>
        <p>Description du second item</p>
        <a href="mypage2.html" title="open image" class="open"></a>
        <img src="images/brugges2006/2.jpg" class="full" />
        <img src="images/brugges2006/2-mini.jpg" class="thumbnail" />
    </div>
</div>

A ce stade, la galerie est pratiquement opérationnelle. Il ne reste plus qu'à faire démarrer le script. Placez ce code dans la partie head de votre page html, ou encore mieux, dans un fichier .js que vous lierez à la page :

<script type="text/javascript">
function startGallery() {
    var myGallery = new gallery($('myGallery'), {
        timed: false
    });
}
window.addEvent('domready', startGallery);
</script>

Comme vous l'aurez sans doute remarqué, nous utilisons ici du Javascript non intrusif. Ca fait du bien un beau code bien propre :)
Et voilà, notre galerie est prête et vous pouvez admirer le résultat. Toutefois, notons l'existence de paramètres permettant de régler la galerie assez finement.
Dans le code ci-dessous, repérez la ligne 4. Vous incluerez vos paramètres supplémentaires à cet endroit.

  • timed: true | false Réglé à true, les images défilerons toutes seules. Sur false, uniquement si l'utilisateur clique sur les flèches.
  • showArrows: true | false Montre (true) ou non (false) les flèche permettant de passer à l'image suivante/précédente.
  • showCarousel: true | false Permet de voir des vignettes des images si il est réglé à true.

Plugin Wordpress SmoothGallery : Featured Content Gallery

Avec la mode des thèmes Magazine, il est bon ton de pouvoir présenter à ses lecteurs une sélection mise en évidence de ses meilleurs articles. Si vous avez aimé SmoothGallery, alors le plugin Featured Content Gallery est fait pour vous.
Le principe est simple : Après avoir installé le plugin, un nouvel onglet apparaitra dans le menu Options de votre interface d'administration Wordpress. Il vous sera proposé de renseigner les titres, descriptions, et images pour 5 – Pas un de plus, pas un de moins – articles à mettre en évidence.
Même si on peut regretter le manque de souplesse du procédé (Il aurait été intéressant, selon moi d'utiliser une catégorie "Featured" dédiée aux articles à mettre en évidence) l'avantage est que le tout est particulièrement simple et sera accessible à tous.

Téléchargez l'archive, décompressez-là et uploadez le répertoire content-gallery dans le répertoire wp-content/plugins de votre install Wordpress.
Rendez-vous dans votre panneau d'administration et activez le plugin. Il ne vous reste plus qu'à placer la ligne suivante sur l'un des fichiers de votre thème pour générer la galerie :

<?php include (ABSPATH . '/wp-content/plugins/content-gallery/gallery.php'); ?>

Si vous souhaitez ne montrer la galerie que sur une page spécifique de votre blog (Par exemple, la homepage) n'hésitez pas à lire cet article traitant des fonctions conditionnelles de Wordpress.

Tags: , , , , ,

36 commentaires

» Flux RSS des commentaires
  1. SmoothGallery 2.0: Gallerie dimages en Javascript…

    Il existe quantit de scripts Javascript dvous la cration de galerie dimages, mais celui-ci particulirement retenu mon attention. Bas sur lexcellent Mootools, SmoothGallery permet de crer une galerie dimages trs moderne. Bonne nouvelle, il existe gale…

  2. Oui ce script est mortel, tout comme Mootools d’ailleurs :D

  3. Ravi de voir que ce script plaît ! :)

    A propos, je prépare une nouvelle version pour bientôt…
    Un truc sympa dans la version qui arrive c’est ca :
    http://smoothslideshow.jondesign.net/SmoothGallery-2.1a/demozoom.html (Le zoom intégré :) )

  4. ça pour me plaire, il me plait ;) C’est vraiment du très, très beau boulot! Quand à la nouvelle version, elle semble en effet très prometteuse.

  5. [...] m’a tellement séduit que ce script à fait l’objet d’un article dédié il y a une semaine. Basé sur l’excellent framework Mootools, SmoothGallery vous propose de [...]

  6. [...] slider à été remplacé par SmoothGallery. (dont j’avais déja parlé ici) Il est donc possible de mettre de grosses images qui mettrons vos meilleurs articles en avant. [...]

  7. Salut !

    Merci pour ce super script il est vraiment terrible !!

    J’ai 2 questions :

    - Comment fait on pour enlever le « Picture»  sur ma galerie (quand on clique sa déplie un panneau qui montre les vignettes)
    - Comment fait on pour rendre la partie du texte cliquable ? Comme sur ton blog enfaite ^^

    Merci :)

    A+

  8. Hello Necy;
    Pour le lien, regarde dans le code html que j’ai posté dans l’article, c’est la que tu dois placer ton lien, la partie texte deviendra alors cliquable.
    Pour le vignettes, tu dois, au niveau du code d’iniatialisation Javascript, régler le paramètre showCarousel à false.
    @+ :)

  9. Merci pour ta réponse rapide enfaite j’ai bien écrit le lien mais bizarre le texte n’est pas cliquable, il faut cliquer sur l’image pour que sa fonctionne… Le texte reste lui juste séléctionnable…

    Après pour ce code, la nouvelle fonction il faut l’ecrire comment ? Moi je l’ais ecrit comme sa mais sa marche pas :

    function startGallery() {
    var myGallery = new gallery($(’myGallery’), {
    timed: false
    showCarousel: false
    });
    }
    window.addEvent(’domready’, startGallery);

  10. t’y es presque :) Il te faut juste rajouter des virgules entre les paramètres,comme je l’ai fait ici.

    Pour le lien, c’est bizarre, tu es sous quel navigateur?

  11. Merci pour le JS c’est bon !

    Pour le lien non sa veut toujours pas sur les 2 navigateurs (firefox et explorer) je comprends pas trop je vais regarder plus en détails !

    Sinon un autre problème (décidement lol) tu vois je place ma galerie juste sous un bloc div qui contient une image en arrière plan, et enfaite ma galerie est censé être collée à cette image, sa passe impec sous firefox, mais sous explorer j’ai un enorme décallage entre les deux comme si j’avais un saut de ligne (alors qu’il n’y a aucun BR) ! Comme je vois que toi sur ton blog la galerie est bien collé au menu, j’me dit que tu as peut-tre changé un truc dans la feuille de style :D ?

  12. Faudrais que je vois ton script pour pouvoir t’aider sur ces deux points là :)

  13. Yep! Alors voici le code pour le problème de décalage sous IE:

    Class=» titre-colonne1-left»  = contiens un background image.

    Mon inculde « Galerie Ajax»  = le code de la galerie.

    Et pour le problème du lien je vois vraiment pas :/ :

    TITRE
    Ma description

  14. Je crois que Wordpress à bouffé ton code…Cela dit, je voulais dire « As tu un endroit en ligne ou matter ton code?

  15. A ouais merde lol, est-ce que tu as un mail ou je peux te montrer sa ? Ca sera plus simple …

  16. Oui, contacte moi via le formulaire du blog ;)

  17. Hello JBJ,

    Est-ce que t’as pu voir pour mon problème de décalage sous IE ? Je viens de voir que ça me fait le même décalage sour Firefox 3.0

    Merci :)

    A+

  18. Tu peux mettre ton blog en ligne qqpart? La je pourrais aller regarder, voir ce qui va pas et trouver le problème :)

  19. Super script, congratulations…
    J’ai cependant une question y a t il des exemples decrivant la mise a disposition des images pour la gallerie soit l’upload avec generation des thundernails.
    Je vios que y a un script resizer.php.
    Bref je voudrais un exemple permetant de mettre les images au bon format car dans les exemples tout est fourni dans un cadre ideal avec les images comme il faut.
    Merci d’avance

  20. Hello, je me suis jamais servi de ce fichier car je préfère redimensionner à la main (J’ai pas 3000 fichiers, et de plus comme ça j’ai le controle absolu sur ce qu’il se passe) donc j’ai aucune idée de comment ce script fonctionne.
    Mais bon, un resize d’image se fait assez facilement avec GD (par exemple), à mon avis tu trouveras un paquet d’exemples sur google.

  21. [...] http://www.lyxia.org/blog/developpement/javascriptajax/smoothgallery-20-gallerie-dimages-en-javascri... [...]

  22. salut ! et c’est quoi le code pour ouvrir le lien dans une nouvelle fenêtre, mercii

  23. Bonjour,
    J’ai mis ce script sur mon site. Il est appelé dans une page en ajax et il ne charge pas l’animation. Que faire? merci d’avance.

  24. @sysy: Tu peux être plus précis? Et me donner le lien de ta page?

    a+

  25. Salut,

    Merci beaucoup pour ce tutoriel.
    J’ai pu modifier le thème Purity de Maigret afin d’y ajouter cette superbe gallerie ;)

    Tu penses quoi du résultat : http://www.come-web.com/blog/ ?

  26. J’en pense que t’as bien joué :) ça le fait :)

  27. Bonjour juste une petite question ;)

    Si je veux installer de smooth gallery l’une en dessous de l’autre j’ai un probleme sur la seconde gallery qui en fait n’affiche rien:( Est ce que quelqu’un aurait une solution (code à changer) pour pouvoir en mettre autant que nous voulons?

    merci

  28. Holala,

    C’est top !
    A ton avis est il possible que le choix des articles se fassent automatiquement?.J’entends par la les 5 derniers articles crées , ou faut il tout faire manuellement?

    Et je me demandais également ,comment faire pour mettre son petit avatar??

    Miss Blog

  29. J’ai cherché mais toujours pas trouvé, peux tu me dire pour le choix des articles, ou faut il que je le fasse en dur?

    Miss blog

  30. Bonjour,

    J’ai implementer cette smoothGallery et je dois dire que j’en suis relativement satisfait. Le seul probleme est lorsque ma Gallery dispose d’uniquement 1 image. Dans ce cas la, rien ne s’affiche hormis la legende en bas.

    Avez vous eu un probleme equivalent et si oui comment l’avez vous resolu?

    Merci d’avance.

  31. Hummm … est ce possible de faire une galerie pour un seul article ?

  32. Bonjour,

    J’ai commencé tout juste à me plonger dans WP il y a deux semaine autant dire que je suis novice :-) J’ai quelques questions sur la smooth gallery.

    Je travail à partir du thème openbook qui nous intègre direct la gallerie mais rien de fonctionne j’ai mis mes images dans la catégorie featured comme demandé et j’ai même repris le script et le code au dessus sans succès….
    Alors pouvez vous m’orienter ???
    Merci bcp pour votre aide

    Alice

  33. Salut

    Premier passage sur votre site et premières impressions : c’est simple, clair, intéressant, complet, réactif, a jour, de bonne humeur et efficace ! (j’arrête-la la série, on va me prendre pour quelqu’un de la famille…) Je connais peu de blogs de cette qualité ! Je ne peux que vous encourager a poursuivre dans cette voie !!

    Et puisque l’on partage beaucoup sur ce site, votre article m’a fait penser a « SimpleViewer»  qui propose quelque chose d’assez proche en terme de défilement et qui ajoute des miniatures de photos permettant une navigation rapide.
    Pour ceux qui voudraient jeter un oeil, c’est par la > http://www.airtightinteractive.com/simpleviewer/

    (PS : je n’ai pas lu tous les posts car ils sont très nombreux, j’espère donc ne pas avoir créer de doublon…)

  34. Salut, merci pour ton intervention. Là on passe dans une autre technologie : le flash.

  35. Bonjour,

    Je comprends comment installer smoothgallery mais après comment on rajoute des images dans cette galerie ? Il faut mettre un mot dans champ personnalisé?il faut mettre l’image en premier dans un article?
    Pardon mais en Français « GALERIE»  ne prend qu’un « L»  à la différence du mot anglais « GALLERY « qui en prend 2,erreur qui revient très souvent hélas .
    Merci

  36. Belle galerie mais je ne suis pas d’accord sur le commentaire :

    « Il y a quelques années, ce genre de galerie n’aurait été réalisable qu’avec du Flash, balourd et mal optimisé pour le référencement» 

    Heu… C’est un peu faux quand même : un chouia de Javascript (sans même utiliser une librairie) permet de faire la même chose. Il ne s’agit que d’un effet d’opacité (style.filter) et d’un effet de déplacement (style.top), le tout allié avec un setInterval ! Allez, 3 Ko de JS à tout casser.

Commenter