IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

[Article] Une galerie d'images utilisant la propriété CSS z-index et jQuery


Sujet :

jQuery

  1. #1
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut [Article] Une galerie d'images utilisant la propriété CSS z-index et jQuery
    Bonjour,

    Je vous propose une traduction de l'article anglophone Create a unique Gallery by using z-index and jQuery

    Ce tutoriel va vous montrer comment créer une galerie d'images en utilisant la propriété CSS z-index et jQuery

    Pour toutes questions/suggestions, vous pouvez les faire à la suite de ce message.

    Bonne lecture

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir Bovino.

    Il y a une amélioration, voir : http://thisblog.usejquery.com/2009/0...preloader/#toc

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    On est au courant pour l'amélioration mais on va dans l'ordre de parution.

    Cela ne sert à rien de traduire un article si la base ne l'est pas

    Aussi pour infos ce n'est pas une amélioration du code que l'on propose mais plutôt un nouveau tutoriel qui reprend juste la base pour ajouter de nouveaux éléments. A aucun moment on modifie le code de base

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Bien entendu il faut toujours commencer par le début.

    Je voulais simplement signaler qu'il y avait une suite intéressante, très peu différente de la première version et que l'on aurait pu imaginer les associer dans la traduction.

    Il se trouve que cette suite provoque un bug sous IE8, je n'ai pas testé les autres versions d'IE, ni d'autres navigateurs que F3.

    Voici ma correction du fichier demo.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    $(document).ready(function() { //perform actions when DOM is ready
        //var z = 0; //for setting the initial z-index's
        var inAnimation = false; //flag for testing if we are in a animation
        //var imgLoaded = 0; //for checking if all images are loaded
     
        var z = $('#pictures img').length;
        var image = new Image();
     
        $('#pictures').append('<div id="loader"></div>'); //append the loader div, it overlaps all pictures
     
        $('#pictures img').each(function(i, item) {
     
            $(item).css('z-index', (i+1));
     
            $(image).attr("src", $(item).attr("src")).load();
     
            if ((i+1) == z) {
                $('#loader').fadeOut('slow');
            }
         });
     
      function swapFirstLast(isFirst) {
        if(inAnimation) return false; //if already swapping pictures just return
        else inAnimation = true; //set the flag that we process a image
     
        var processZindex, direction, newZindex, inDeCrease; //change for previous or next image
     
        if(isFirst) { processZindex = z; direction = '-'; newZindex = 1; inDeCrease = 1; } //set variables for "next" action
        else { processZindex = 1; direction = ''; newZindex = z; inDeCrease = -1; } //set variables for "previous" action
     
        $('#pictures img').each(function() { //process each image
          if($(this).css('z-index') == processZindex) { //if its the image we need to process
            $(this).animate({ 'top' : direction + $(this).height() + 'px' }, 'slow', function() { //animate the img above/under the gallery (assuming all pictures are equal height)
              $(this).css('z-index', newZindex) //set new z-index
                .animate({ 'top' : '0' }, 'slow', function() { //animate the image back to its original position
                  inAnimation = false; //reset the flag
                });
            });
          } else { //not the image we need to process, only in/de-crease z-index
            $(this).animate({ 'top' : '0' }, 'slow', function() { //make sure to wait swapping the z-index when image is above/under the gallery
              $(this).css('z-index', parseInt($(this).css('z-index')) + inDeCrease); //in/de-crease the z-index by one
            });
          }
        });
     
        return false; //don't follow the clicked link
      }
     
      $('#next a').click(function() {
        return swapFirstLast(true); //swap first image to last position
      });
     
      $('#prev a').click(function() {
        return swapFirstLast(false); //swap last image to first position
      });
    });

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/12/2014, 13h55
  2. [FPDF] Faire une galerie d'images en PDF
    Par BernardT dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/06/2008, 12h04
  3. [AJAX] Construction d'une galerie d'images avec Ajax
    Par Pmko01 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/01/2008, 16h32
  4. [Galerie] Recherche une galerie d'images
    Par Chickenkiller dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 19/09/2006, 17h03
  5. une galerie d'images
    Par Le Mage Noir dans le forum Langage
    Réponses: 9
    Dernier message: 19/03/2006, 21h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo