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> |