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 :

Créer une fenêtre modale avec jQuery et JSON


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Par défaut Créer une fenêtre modale avec jQuery et JSON
    Bonjour à tous,

    Je suis actuellement en train de faire un exercice où je dois afficher une liste d'animaux avec leur image qui sont dans un fichier JSON sur une page HTML sous forme de liste.

    J'ai réussi à le faire , mais maintenant il faut que je crée une fenêtre modale qui me permette au clic sur un li d'afficher le détail de l'animal qui est dans le fichier JSON.

    Comment faire ?

    J'ai essayé des trucs sur app.js ( evenement on click sur un li ) et index.html (création de la div qui contient la fenetre modale ) , style.css ( style de la fenetre ) le projet est dispo ici si vous voulez m'aider comme y a tous les fichiers http://dl.free.fr/getfile.pl?file=/w4FMGi7U et

    l'exo sur http://exosubskill.16mb.com/ .

    Merci de l'aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Salut,

    Pour une fenêtre modale avec jquery, il y a un tuto ici. Essaies le code dans une page distincte et fais le fonctionner correctement avant de l'adapter à ton code.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Par défaut
    J'ai vu ce tuto mais ça m'explique toujours pas comment récuperer les bonnes informations du JSON pour un animal donné qui est dans la liste.

  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 : 75
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    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
    $(function() {
      var
        people = [],
        jObjModal = $( '#fenetre_modale' );
     
      $.getJSON( './js/exemple.json', function( data ){
        people = data.Animaux;
     
        $.each( people, function( i, f ) {
          $( '<li>' + f.libelle + ' ' + '<img src="img/' + f.image + '"/></li>').appendTo( '.nav-list' );
        });
      });
     
      // code dynamique, on() avec deux sélecteurs. Voir ma FAQ, lien dans la signature
      $( ".nav-list" ).on( "click", "li", function( evt ){
        var lien = $( evt.target ).attr( "src" ).slice( 4 ); // on doit enlever les caratères 0 à 4 : 'img/'
     
        $.each( people, function( i, item ) {
          if ( lien === item.image ) {
            jObjModal
              .html( '<h3>' + item.libelle + '</h3><p>' + item.texte + '</p>' )
              .css({
                "color" : "white",
                "padding" : "0.6em",
                "overflow" : "auto"
              })
              .fadeIn( 800 ); // 0.8s
     
            setTimeout( function( ){
              jObjModal.fadeOut( 800 ); // 0.8s
            }, 10000 ); // 10s
     
            return false; // exit each
          }
        });
     
      });
     
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 8
    Par défaut
    OK ca marche bien pour moi mais comment faire pour qu'elle s'affiche par-dessus la page, une sorte de pop-up ? Ou autre solution car là on ne voie que pour les animaux en haut de la liste et non ceux d'en-bas.

  6. #6
    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 : 75
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Sur mon ordinateur, la fenêtre modale fonctionne pour tous les animaux.

    Il y a un problème avec le setTimeout lorsqu'on clique rapidement sur plusieurs animaux. Il faut le supprimer ou améliorer son fonctionnement.

    J'ai oublié de vous dire que dans le fichier style.css, il faut ajouter la règle CSS : #fenetre_modale h3 { margin-top: 0; }.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. [Article] Créer une fenêtre modale avec CSS 3
    Par Bovino dans le forum Publications (X)HTML et CSS
    Réponses: 7
    Dernier message: 24/02/2018, 16h25
  2. [CSS 3] Créer une fenêtre modale avec CSS 3
    Par Bovino dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 07/12/2012, 10h21
  3. Créer une liste déroulante avec jquery et json
    Par beegees dans le forum jQuery
    Réponses: 2
    Dernier message: 30/04/2012, 11h46

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