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

JavaScript Discussion :

Bouton retour en arrière


Sujet :

JavaScript

  1. #21
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Avril 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Avril 2016
    Messages : 73
    Par défaut
    Ton interface est parfaite en soit, c'est juste que j'ai du mal à imaginer comment l'intégrer à mon site. J'ai besoin d'avoir un affichage des prénoms ranger par genre et par catégorie.

    C'est un site one page avec des systèmes d'ancres et d'articles qui prennent le dessus sur un élément ou non.

    ex: Si je vais dans la rubrique fille, je peux faire défiler les prénoms tendances pour fille (tendances fille correspond à "girl" sur le code que j'ai posté), ensuite si je veux choisir par thème, je clique sur le bouton recherche avancée, je choisi prénoms rare par exemple et j'accède à l'article pour faire défiler les prénoms rares pour fille.

    Voici quelques parties de mon site en photo


    Nom : choix-sexe.png
Affichages : 233
Taille : 398,5 Ko

    Nom : article-fille.png
Affichages : 230
Taille : 977,7 Ko

    Nom : par-thème.png
Affichages : 233
Taille : 973,0 Ko

    Nom : resultat.png
Affichages : 227
Taille : 901,0 Ko
    (bien entendu à la place du "bouton clique-moi" ce sera des flèches)


    Edit: je viens de voir ton message précédent, je regarde ça en détail

  2. #22
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Avril 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Avril 2016
    Messages : 73
    Par défaut
    Sur ton code précédent je n'ai pas compris pourquoi le bouton "envoyer".

    Mais ça me fait penser à quelque chose que j'avais voulu essayer pour mémoriser les prénoms préférés à une liste. J'avais laissé tomber car trop complexe pour moi.
    Du coup j'en profite pour te poser cette question hors sujet. J'avais voulu utiliser un principe d'un codepen et je me suis toujours posé une question; comment est-ce possible en JS qu'une liste ajoutée puisse être toujours conservée après actualisation de la page. (jusqu'à ce que l'on supprime l'historique) https://codepen.io/mehrshad-hamavandy/pen/ZEBLdKw

  3. #23
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Décidément, difficile d'aller au bout des choses...

    1) "Envoyer" est la valeur par défaut d'un bouton "submit"; mais on peut la remplacer par Nutella ou ce que tu veux;
    2) Si tu n'as pas besoin de bouton submit, c'est que tu n'as pas besoin de formulaire;
    3) Ta demande initiale, c'est-à-dire le tirage aléatoire d'un nom dans une série, n'a à mon avis plus de raison d'être, dans ton interface;
    4) Je ne sais toujours pas de ce que tu fais du prénom quand il est affiché: l'utilisateur peut cliquer dessus pour en savoir plus?
    5) Si oui, où vas-tu chercher l'info??? Pas dans la même page, quand même? Sinon, je m'interroge sur le pourquoi du tralala;
    6) Javascript contrôle à 100% ce qui peut être affiché à l'écran donc dis-toi bien que tes problèmes sont de toute façon très simples. Ce qu'il faut, c'est formuler des demandes claires et quand tu as compris ce qu'il fallait faire, tu continues le job tout seul...;
    7) Si tu ne comprends pas bien le fonctionnement d'une page web, autant décrire entièrement ta situation (que veux-tu? que n'arrives-tu pas à faire?) plutôt que d'ajouter ici ou là des paramètres et des fonctionnalités, parce que sinon, on a l'impression de régresser au fur et à mesure qu'on t'aide.

  4. #24
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Avril 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Avril 2016
    Messages : 73
    Par défaut
    1) J'avais compris pour la valeur par défaut
    2) Effectivement je me rends compte que le formulaire n'était pas approprié comme je l'avais laissé entendre.
    3) Ma demande initiale était de pouvoir revenir en arrière sur un prénom tout en conservant le tirage aléatoire (le tirage aléatoire est suffisant au chargement de la page à présent et le défilement de gauche à droite dans une liste est plus approprié)
    4) Je ne fais rien du prénom, il est simplement affiché (l'idée de pouvoir l'intégrer dans une liste de préférence est une autre histoire, on oublie)
    5) Aucunes infos au clic sur le prénom, juste de l'affichage.

    Dans mon esprit j'ai besoin de 16 div différentes, chacune associé à sa catégorie, c'est là ou je bloque quand tu me présentes 1 div pour afficher toutes les catégories

  5. #25
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    D'accord. Alors on va simplifier le système... dès que possible;

    L'idée c'est d'afficher simplement le menu "fille / garçon" au chargement;
    En sélectionnant l'un ou l'autre, on affiche par défaut les prénoms "tendance", en aléatoire si tu veux; Et en même temps, sous la zone d'affichage, on fait apparaître la liste des autres options pour les prénoms du genre;
    En cliquant sur une autre option, elle remplace "tendance" dans la zone d'affichage;

    Bref, du cache-décache, pour l'essentiel;

  6. #26
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    On y arrive à peu près comme ça (t'occupe pas de l'apparence hein...)

    http://javatwist.imingo.net/histonoms2.htm

    - menu fille / garçon au départ;
    - option par défaut "tendance" en choisissant fille ou garçon;
    - affichage des autres options en dessous pour changer à tout moment;

    - j'ai laissé la liste "tendance" aléatoire et pas les autres.

    Code html : 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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <meta charset="utf-8"/>
    <title>...</title>
    <style>
    #g{display:flex;justify-content:space-evenly;align-items :flex-start;margin:50px;cursor:pointer;}
    #inter{margin:auto;display:flex;justify-content:center;align-items : flex-start;}
    #cadre button{margin:0px 50px 0px 50px;}
    #cadre div{text-align:center;min-width:200px;}
    ul{list-style-type:none;padding:0px;}
    li{margin:auto;width:300px;text-align:center;}
    span{cursor:pointer;}
    hr{width:300px;}
    h2{margin:10px 50px 10px 50px;}
    h3{text-align:center;}
    .hide{visibility:hidden;}
     
    </style>
    </head>
     
    <body>
    <div id="g">
    	<h2>filles</h2>
    	<h2>garçons</h2>
    </div>
     
    <div id="cadre" class="hide">
    	<h3 id="titre"></h3>
    	<div id="inter">
    		<button id="prev">avant</button>
    		<div id="choix"></div>
    		<button id="next">après</button>
    	</div>
    </div>
    <hr />
    <ul id="liste"></ul>
    <script>
     
    document.addEventListener("DOMContentLoaded",()=>{
     
            const firstnames = {
                    g_tendance: ['Aaron', 'Achille', 'Adam'],
                    g_retros: ['Aaron', 'Abélard', 'Achille'],
                    g_bibliques: ['Aaron', 'Abel', 'Abraham'],
                    g_celestes: ['Ange', 'Angel', 'Arwen'],
                    g_originaux: ['Abélard', 'Achil', 'Adame'],
                    g_composes: ['Ange-Marie', 'Charles-Edmond', 'Charles-Elie'],
                    g_monde: ['Akamu', 'Akoni', 'Anakoni'],
                    g_rares: ['Achille', 'Adamo', 'Adams'],
                    f_tendance: ['Adèle', 'Agathe', 'Albane'],
                    f_retros: ['Adèle', 'Adélie', 'Aglaé'],
                    f_bibliques: ['Abigaïl', 'Adam', 'Anabel'],
                    f_celestes: ['Alva', 'Alya', 'Amaya'],
                    f_originaux: ['Abby', 'Achille', 'Adame'],
                    f_composes: ['Abby-Gaelle', 'Abby-Gaëlle', 'An-Sophie'],
                    f_monde: ['Aanui', 'Aelan', 'Ailani'],
                    f_rares: ['Abby', 'Abbygael', 'Abbygaëlle'],
                    f_truc: ['Martine', 'Abbygael', 'Abbygaëlle']
            },
            // éléments de la page
            genre=document.querySelectorAll("h2"),
            prev=document.querySelector("#prev"),
            next=document.querySelector("#next"),
            cadre=document.querySelector("#cadre"),
            choix=document.querySelector("#choix"),
            titre=document.querySelector("#titre");
            liste=document.querySelector("#liste");
            
            // rang du prénom dans la série, à incrémenter et décrémenter avec les boutons
            let rang=0, titre2=false;
     
            // sélection "garçon / fille"
            genre.forEach(v=>{
                    v.addEventListener("click",()=>{
                            // on affiche la zone principale si ce n'est pas fait
                            if(cadre.classList.contains("hide")){
                                    cadre.classList.remove("hide")
                            }
                            // on vide la liste d'options
                            while(liste.lastChild){liste.lastChild.remove()}
                            
                            // on affiche soit "f_tendance" soit "g_tendance"
                            let cat=v.textContent[0]+"_tendance";
                            // ce premier tableau est trié de manière aléatoire
                            choix.textContent=firstnames[cat].sort(()=>Math.random()-0.5)[0];
                            // on affiche le nom de l'option
                            titre.textContent=v.textContent[0]=="g" ?
                            "garçons => tendance":
                            "filles => tendance";
                            
                            titre2= titre.textContent[0]=="g"?
                                    "g_"+titre.textContent.split(" ")[2]:
                                    "f_"+titre.textContent.split(" ")[2];
     
                            // on ajoute une ligne dans la liste pour chaque prénom féminin ou masculin
                            for (i in firstnames){
                                    if(i[0]==titre.textContent[0]){
                                            let li=document.createElement("li");
                                            let sp=document.createElement("span");
                                            sp.textContent=i.substring(2);
                                            let cat=i;
                                            // en cliquant une nouvelle option, elle remplace l'option "tendance"
                                            sp.addEventListener("click",()=>{
                                                    rang=0;
                                                    choix.textContent=firstnames[cat][0];
                                                    titre.textContent=cat[0]=="g" ?
                                                    "garçons => "+cat.substring(2):
                                                    "filles => "+cat.substring(2);
                                                    
                                                    titre2= titre.textContent[0]=="g"?
                                                    "g_"+titre.textContent.split(" ")[2]:
                                                    "f_"+titre.textContent.split(" ")[2];
     
                                            });
                                            // on affiche la liste
                                            li.append(sp);
                                            liste.append(li)
                                    }
                            }
                    })      
            })              
            
            // gestionnaire "plus" / "moins" pour naviguer dans les prénoms
            next.addEventListener("click",()=>{plus(titre2)})
            prev.addEventListener("click",()=>{moins(titre2)})
     
            const plus=(q)=>{
                    rang<firstnames[q].length-1 ? rang++ : rang=0;
                    choix.textContent=firstnames[q][rang];
            }
            const moins=(q)=>{
                    rang>0 ? rang-- : rang=firstnames[q].length-1;
                    choix.textContent=firstnames[q][rang];
            }       
    })
    </script>
     
    </body>
    </html>

  7. #27
    Membre confirmé
    Homme Profil pro
    Infographiste
    Inscrit en
    Avril 2016
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Infographiste

    Informations forums :
    Inscription : Avril 2016
    Messages : 73
    Par défaut
    Ton script est top, merci de t'être donné autant de mal pour tout refaire et surtout d'avoir pris le temps de détailler chaque étape (qui me facilite le travail de compréhension). Le minimum que je peux te proposer en retour c'est d'utiliser ton pseudo (ou un autre nom) pour que le script soit à ton nom ?

    Pour mon autre histoire, (de mémorisation d'un prénom dans une liste) je posterai prochainement un 2e script. c'est 2 projets differents sur le thème des prénoms. Je lance un petit appel

    Pour ce 1er projet. c'est ok, je passe le sujet en résolu. j'attends ta réponse pour le nom du script. Merci !

  8. #28
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    T'inquiète, c'est pour le fun; ici, on passe notre temps à ça
    Et quand je vois le boulot pour que tu refasses une css correcte, c'est pas vraiment un cadeau

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 16
    Dernier message: 11/04/2017, 17h28
  2. [Swing] Bouton retour arrière
    Par Assoumarh dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 18/10/2014, 15h33
  3. Desactivation bouton 'retour arriére'
    Par dragonfly dans le forum Mobiles
    Réponses: 0
    Dernier message: 24/07/2014, 12h52
  4. Comment inactiver le bouton retour arrière
    Par CBen dans le forum VBA Access
    Réponses: 3
    Dernier message: 11/02/2008, 15h10
  5. Désactivé le bouton retour.
    Par glanumf dans le forum ASP
    Réponses: 3
    Dernier message: 31/05/2005, 17h25

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