Javascript | Challenge - Galerie Photos

Поделиться
HTML-код
  • Опубликовано: 18 окт 2024
  • Accès Site ► weformyou.fr/f...
    S'Abonner ► bit.ly/WeFormY...
    Nouvel exercice d'application de nos connaissances Javascript, avec cette fois la création d'une galerie photos.
    Nous réutilisons tous les chapitres vus précédemment dans cette application.
    Le but étant de créer un diaporama fluide et infini.
    En fin de ce tutoriel vidéo, je vous montre comment écouter les touches du clavier de l'utilisateur s’il souhaite naviguer avec les flèches du clavier.
    Suivre WeFormYou sur:
    Site Officiel ► weformyou.fr
    Twitter ► / weformyou_fr
    Page Facebook ► / weformyou.fr
    Groupe Facebook ► / weformyou
    #weformyou

Комментарии • 19

  • @patgyver34
    @patgyver34 3 года назад

    Tout fonctionne parfaitement si on suis correctement le tuto et que l'on fait pas de faute de frappe, simple et efficace, merci beaucoup !

  • @MohamedELHAKIKI
    @MohamedELHAKIKI 4 года назад +2

    awesome content I loved it

  • @yayoo67
    @yayoo67 3 года назад

    super cour merci :)

  • @aurelienamadon7684
    @aurelienamadon7684 4 года назад +1

    Bonjour,tout d'abord félicitation pour ces vidéos gratuite de qualité qui valent largement des formations payante.
    Je ne trouve pas le moyen de vous faire un retour globale de cette formation,difficulté perçue....
    Alors ma question pour ce tuto: imaginons que l'on souhaite mettre une class active sur la premiere img et ajouté la class hidden en js.
    Pourquoi ce code retourne une erreur?
    const images = document.getElementsByTagName('img');
    images.classList.add('hidden');
    images.classList is undefined...
    j'ai essayé aussi images[ ].classList.add('hidden');
    Ce qui voudrait dire que soit il faut obligatoirement passé par une boucle ou alors créer une ligne par index souhaité,c'est ça?

    • @WeFormYou
      @WeFormYou  4 года назад +2

      Bonjour,
      Je n'ai pas besoin de donner la réponse du coup ! 😀 ... On doit obligatoirement passer par une boucle. Car getElementsByTagName('img') récupère toutes les img de la page et nous donne un tableau en retour (Meme si il n'y avait qu'une seule image dans la page).
      Il nous faut donc parcourir ce tableau afin d'ajouter la class à chaque élément souhaité.

  • @imedjlassimoussa1100
    @imedjlassimoussa1100 4 года назад +2

    Salut Gaël
    De mon avis c était mieux de debugue à chaque fois que le code ne marche pas juste pour montrer à tes élèves que le débug c'est la vie 😀

  • @aurelienamadon7684
    @aurelienamadon7684 4 года назад +1

    Bonjour,je suis bloqué sur un détail en ayant voulu pousser le challenge.
    La space bar fera play and pause
    count = document.querySelector('.counter'); //div invisible pour stocker une valeur
    document.onkeydown = function(e) {
    let key = e.keyCode;
    //space bar
    nbClick = 0;
    if (key == 32) {
    nbClick++;
    function clicked (){
    if (nbClick == 1) {
    if (count.innerHTML == 1){
    clearInterval(interval);
    count.innerHTML = 2;
    }
    else{
    setInterval(next,300);
    count.innerHTML = 1;
    }
    }
    }
    clicked();
    }
    }
    le changement de chiffre s'opere bien mais pas le clearInterval.
    Quelqu'un à une solution à proposer?

    • @WeFormYou
      @WeFormYou  4 года назад +2

      Bonjour Aurélien
      Le setInterval doit etre stocké dans une variable globale pour pouvoir le clear plus tard.
      1. Définir la variable globalement : let interval;
      2. Stocker l’intervalle dans cette variable : interval = setInterval(next,300);
      3. Supprimer l’intervalle pour l’arrêter : clearInterval(interval);
      Pour ce qui est du code je vois bien la logique et il doit s'en doute fonctionner mais je le trouve très complexe.
      Quelques explications :
      - La variable nbClick ne sert pas puisque elle permet de rentrer dans un SI qui sera par définition toujours vrai.
      - La fonction clicked devrait être définie au niveau global pour pouvoir s'en resservir quand on clic sur les boutons je suppose ?
      - Pour le coté performance on pourrait stocker le fait que la vidéo soit en cour de lecture ou non dans une variable booléenne globale en JS, plutôt que de lui faire écrire et lire un chiffre depuis le HTML (ce qui implique beaucoup d'actions de la part du navigateur).
      J’espère être assez explicite 😄 ... C'est super de voir que la formation donne envie d'aller plus loin en tout cas !

    • @aurelienamadon7684
      @aurelienamadon7684 4 года назад +1

      @@WeFormYou merci pour le retour maintenant ça fonctionne il me manquait simplement l'etape 2 dans la function.
      Je me doute bien qu'il doit y avoir un procédé plus simple mais je n'ai pas trouvé comment vérifier la lecture du diapo,je n'ai trouvé que des choses faites pour la video avec la methode play et pause.
      Peut être un futur projet?
      Je n'ai pas pensé a me servir de la fonction clicked pour les boutons,je voulais simplement controler le play et pause via la spacebar comme pour les lecteurs video.
      C'est pour cela que j'ai mis en place ce scenario me permettant d'avoir une condition fausse.Au départ je voulais récuperer le nombre de fois qu'on appuyait sur la space bar,pas réussi.

    • @teamchicken1353
      @teamchicken1353 2 года назад

      @@aurelienamadon7684 tu pourrais utiliser des key press event

  • @ladrifmostafa6687
    @ladrifmostafa6687 4 года назад +1

    la première partie de js ne marche pas:
    const images = document.querySelectorAll('#galery img');
    for (let i=1 ; i < images.length ; i + =1){
    images[i].classList.add('hidden');
    }
    Mon erreur ?
    Thanks

    • @WeFormYou
      @WeFormYou  4 года назад +1

      Bonjour,
      Le code me parait bon ... Est que l' id="galery" a bien été inscrit dans le HTML et est bien l'élément parent des images ?
      Pour apprendre à se debugger, il ne faut pas hésiter à faire 3 tonnes de console.log au départ.
      Par exemple, si il n'y a rien dans "images" cela veut dire que l'erreur n'est pas dans la boucle for ... etc ... Et ainsi de suite pour mener l’enquête ;)

  • @last_name935
    @last_name935 3 года назад

    Enorme merci.
    Mais t'as pas fait le bouton lecture @aléatoire

  • @ladrifmostafa6687
    @ladrifmostafa6687 4 года назад

    Salut
    pouvez vous me dire où j'ai commis l'erreur dans la partie html
    Merci
    Register Form
    #play, #pause, #next, #prev{
    display:inline-block;
    color:black;
    font-size: 20px;
    margin: 10px;
    }
    #galery img.hidden{
    display:none;
    }
    Galerie

    • @WeFormYou
      @WeFormYou  4 года назад

      Bonjour et merci de me suivre 😀
      Je vois plusieurs petits problèmes :
      1. Vous chargez l'ancienne version de Bootstrap ... j'ai pris la version 4 dans la vidéo. Les "col-6" n'existaient pas à l'époque. Repartez toujours du starter template pour créer un fichier HTML, accessible ici pour la version 4 :
      getbootstrap.com/docs/4.4/getting-started/introduction/#starter-template
      2. Le "container" se ferme trop tôt ... Il doit aussi contenir la 2eme "row" ... il y a un fermant en trop
      Pensez à utiliser un formateur de document (prettier par exemple) pour bien voir les imbrications de balises
      www.weformyou.fr/formations/visual-studio-code/extensions-utiles
      3. il y a un margin dans le css de #prev, #next ... qui ne devrait pas être là. Car vous avez utilisez les 12 colonnes de large et les marges s'additionnent -> il faut préférer des padding dans ce cas.
      Bon courage !
      😉

    • @ladrifmostafa6687
      @ladrifmostafa6687 4 года назад

      @@WeFormYou
      Ça marche.
      Merci infiniment