AccueilDernières imagesRechercherS'enregistrerConnexion

Forum de graphisme, codage et game design proposant des tutoriels, astuces, libres services et commandes dans les domaines de l'infographie amateur, de l'intégration web (HTML et CSS essentiellement) ainsi que dans la conception de RPG sur forum.

-28%
Le deal à ne pas rater :
Précommande : Smartphone Google Pixel 8a 5G Double Sim 128Go ...
389 € 539 €
Voir le deal

    [Template + CSS + JS] Infos de profil en spoiler

    Anonymous
    Invité

    Mer 1 Mai 2013 - 23:31

    Rappel du premier message :

    Bonjour !

    Alors je sais que ça existe déjà, mais je viens proposer ici une autre version des spoilers qui permettent d'afficher / masquer les infos de profil situées sous l'avatar.

    Il y a deux variantes, comparé à ce que j'ai pu voir :
    - Aucun javascript ou CSS n'est écrit en dur dans le template, seulement des div avec leurs classes
    - Lorsque le texte masqué est affiché, cliquer celui-ci ne déclenche pas la fermeture. Il faut cliquer sur le même texte qui a permis l'ouverture pour le refermer

    I. Le template
    Dans Affichage -> (Templates) Général -> viewtopic_body, vers les lignes 130 et quelques (cela varie)

    Remplacer
    Code:
    <!-- BEGIN profile_field -->
            {postrow.displayed.profile_field.LABEL} {postrow.displayed.profile_field.CONTENT}{postrow.displayed.profile_field.SEPARATOR}
    <!-- END profile_field -->
     {postrow.displayed.POSTER_RPG}
    Par
    Code:
    <div class="my_spoiler"><div class="titre_spoiler">Afficher</div><div class="contenu_spoiler">
     <!-- BEGIN profile_field -->
            {postrow.displayed.profile_field.LABEL} {postrow.displayed.profile_field.CONTENT}{postrow.displayed.profile_field.SEPARATOR}
    <!-- END profile_field -->
     {postrow.displayed.POSTER_RPG}
     </div></div>
    (ne pas oublier de publier le template une fois celui-ci modifié ^^)
    Ceux qui ont déjà joué à modifier les spoilers dans des posts de forum auront reconnu la structure, j'ai repris exactement la même. Un "cadre" de spoiler, qui contient un titre cliquable et le contenu masqué. Il fonctionnera exactement de la même façon, dès qu'on clique sur le titre, le contenu s'affiche. Un nouveau clic sur le titre et le contenu disparaît.

    II. Le Javascript
    Dans Modules (HTML & JAVASCRIPT) -> Gestion des codes Javascript, créer une nouvelle feuille javascript, lui donner un nom et l'activer sur toutes les pages (uniquement "Dans les sujets" fonctionne aussi, mais l'activer partout est un peu mieux, car si on reprend la structure du spoiler ailleurs (genre sur la PA), le script sera fonctionnel ^^).
    Code:
    window.addEventListener("load", onload, false);
    function onload() {
       $(".my_spoiler").children(".titre_spoiler").click(function() {
          if($(this).parent(".my_spoiler").children(".contenu_spoiler").css("display") == "none") {
             $(this).parent(".my_spoiler").children(".contenu_spoiler").css("display","block");
             $(this).text("Masquer");
          } else {
             $(this).parent(".my_spoiler").children(".contenu_spoiler").css("display","none");
             $(this).text("Afficher");
          }
       });
    }
    Vous constaterez qu'il ne brille pas de par son côté compressé xD ! Je suis une quiche en Js et jQuery, j'ai donc fait ça à tâtons (j'étais pas chaud pour jouer avec un opérateur ternaire, cela se voit je pense xD) ! (d'ailleurs si quelqu'un se sent de l'optimiser, je dis pas non ^^) Si vous ne voulez pas que le texte "titre" du spoiler ne change lorsqu'on clique dessus, retirez les deux appels à la fonction text() et ce sera bon ^^ ! (le script ne compare pas le texte pour en déduire si le spoiler est ouvert ou non, ça n'affectera en rien le fonctionnement =)

    III. Le CSS
    Dans Afichage -> Couleurs -> Feuille de Style CSS, ajouter
    Code:
    .my_spoiler{

    }

    .my_spoiler .titre_spoiler{
    cursor:pointer;
      text-align:center;
      padding:5px;
      font-size:12px;
    }

    .my_spoiler .contenu_spoiler {
    display:none;
    }
    J'ai mis le grand minimum, mais il y a les 3 classes importantes. Vous pouvez ensuite le personnaliser comme vous voulez, bien entendu ^^

    rendu :

    Je crois que c'est à peu près tout, si vous avez des critiques constructives, des suggestions ou du Js plus efficient à me proposer, je suis à l'écoute !

    Voilou :)

    Mettre un crédit vers Never-Utopia est obligatoire. Retirer un crédit est interdit.
    Merci de laisser un message pour donner vos impressions, commentaires et/ou remerciements ^^
    Si vous avez des problèmes avec ce LS, venez poster ici.


    Dernière édition par Alec Kuro le Ven 10 Mai 2013 - 10:52, édité 1 fois
    anonimazur
    anonimazur
    FémininAge : 55Messages : 14

    Sam 14 Avr 2018 - 21:09

    Merci beaucoup

      La date/heure actuelle est Dim 19 Mai 2024 - 8:06