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

Mise en page CSS Discussion :

Multiples fausses popups


Sujet :

CSS

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Par défaut Multiples fausses popups
    Bonjour,
    j'essaye de mettre en pratique cet article très intéressant des tutos qui a l'avantage d'utiliser un code simple et compréhensible pour un novice comme moi !

    Cependant je me demande comment utiliser ce code si l'on a plusieurs popups différentes sur une même page ?
    Dois-je passer forcement par jquery (comme dans l'article original) ou php pour inclure des variables ?

    La solution la plus simple serait surement d'acheter lightview mais je préfèrerai utiliser une technique "maitrisée" car il s'agit de mon propre site qui me sert aussi d'apprentissage.

    Pour illustrer ma demande voici mon site en construction, et pour l'instant la popup n'est accessible qu'en cliquant sur les images des résultats en bas de pages.
    Je vous remercie de votre attention.

  2. #2
    Membre expérimenté Avatar de eckerdecker
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 134
    Par défaut
    Bonjour,

    Pour commencer, quelques remarques, choses que j'ai repéré au hasard du coup d'oeil que j'ai jeté sur ton code :

    1/ Il n'est pas recommandé de placer du contenu "complexe" dans une balise <a>, par complexe j'entends un <div> notamment. Il vaut mieux se contenter d'images et de texte grand maximum. Je ne saurai pas comme ça te dire pourquoi mais j'ai déjà eut des soucis avec ce genre de choses. Pour remplacer je mettrai simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id="actug" onclick="showDiv();">
      <img ...
    2/ Lorsque tu fixe un id à un élément il doit être unique, dans ton cas tu as utilisé deux fois l'id "actug", deux fois l'id "actud", quatre fois l'id "txt". Il faut utilisé l'attribut class dans ce genre de cas.

    En ce qui concerne ta demande : il te suffit de dupliquer ton div id="hideshow", en modifiant l'attribut id justement, en autant de popups que tu as besoin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div id="hideshow1">
      ...
    </div>
    <div id="hideshow2">
      ...
    </div>
    <div id="hideshow3">
      ...
    </div>
    Il te faut également modifier les deux fonctions javascript
    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
    function hideDiv(popupId) {
      if (document.getElementById) // DOM3 = IE5, NS6
        document.getElementById(popupId).style.visibility = 'hidden';
      else if (document.layers) // Netscape 4
        eval("document." + popupId + ".visibility = 'hidden'");
      else // IE 4
        eval("document.all." + popupId + ".style.visibility = 'hidden'");
    }
    function showDiv(popupId) {
      if (document.getElementById) // DOM3 = IE5, NS6
        document.getElementById(popupId).style.visibility = 'visible';
      else if (document.layers) // Netscape 4
        eval("document." + popupId + ".visibility = 'visible'");
      else // IE 4
        eval("document.all." + popupId + ".style.visibility = 'visible'");
    }
    Je pars du principe que tes fonction javascript fonctionnaient bien (je ne fais pas ce genre de tests, au diable les très vieux navigateurs ^^).

    Enfin, pour les ouvrir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div class="actug" onclick="showDiv('hideshow1');">
      ...
    </div>
    <div class="actud" onclick="showDiv('hideshow2');">
      ...
    </div>
    Et bien sûr, dans ton popup hideshow1 par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:hideDiv('hideshow1');">...</a>
    pour le fermer

    Sur cette base libre à toi d'utiliser la techno de ton choix pour générer tes popups, tu pourrais même ne conserver qu'un popup et charger son contenu via un appel ajax, mais c'est une autre histoire ... ^^

  3. #3
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Bonsoir

    Citation Envoyé par eckerdecker Voir le message
    1/ Il n'est pas recommandé de placer du contenu "complexe" dans une balise <a>, par complexe j'entends un <div> notamment. Il vaut mieux se contenter d'images et de texte grand maximum. Je ne saurai pas comme ça te dire pourquoi mais j'ai déjà eut des soucis avec ce genre de choses.
    Cela s'explique tout simplement par le fait qu'un <a> élément de type en ligne ne peut pas contenir d'élément de type bloc comme les div, p...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Par défaut
    Premièrement c'est très aimable à toi de me prévenir sur mes erreurs de code et imperfections. A force de tester je fini par oublier certaines règles élémentaires et si tu ne me l'avais pas dit, je ne sais pas si je m'en serai aperçu un jour !

    Concernant ma requête, ta réponse semble parfaitement convenir à ce que je souhaite. Je test la variable JS dès demain matin voir si cela marche effectivement.

  5. #5
    Membre expérimenté Avatar de eckerdecker
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 134
    Par défaut
    Citation Envoyé par 12monkeys Voir le message
    Cela s'explique tout simplement par le fait qu'un <a> élément de type en ligne ne peut pas contenir d'élément de type bloc comme les div, p...
    hmmm ... et avec un display:block sur un <a> ça passerait ? J'ai comme un souvenir que firebug m'avait carrément réinterprété un <a><div></div></a> ... mais peut-être qu'il y avait d'autres soucis, je ne me rappel plus et depuis je l'ai codé différemment.

  6. #6
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Non ça ne passera pas, le CSS permet de changer l'apparence, l'affichage, mais pas l'état intrinsec de l'élément...

    Un <a><div></div></a> ne passera pas la validation...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Par défaut
    Cela marche parfaitement et j'ai eu un petit rafraichissement de mémoire javascript en même temps.
    Merci beaucoup de votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Supressions multiples et confirmation par popup
    Par cloridriks dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 18/11/2010, 15h51
  2. Ouvrir un pdf dans une "fausse" popup
    Par nicolas2603 dans le forum jQuery
    Réponses: 20
    Dernier message: 01/09/2009, 15h32
  3. Sélection multiple et popup Menu
    Par JM-R dans le forum Composants
    Réponses: 1
    Dernier message: 13/01/2009, 16h44
  4. redirection multiple : [principale+popup]
    Par Angelik dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 30/01/2007, 12h06

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