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 :

Ajouter un effet de transition (css: transition:all 1s ease-in-out;) via javascript


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Par défaut Ajouter un effet de transition (css: transition:all 1s ease-in-out;) via javascript
    Bonjour,

    J'essaie d'ajouter un effet de transition via un code javascript. La situation est la suivante :

    J'ai 2 colonnes. Celle de gauche représente l'image agrandie de celle cliquée dans la colonne de droite. La colonne de droite contient des vignettes des images à agrandir (dans la colonne de gauche). La colonne de gauche contient un div avec un id ("enlargedimg"). Les vignettes sont englobées chacune dans un tag button qui déclenche une action sur un click (onclick event).

    A l'id "enlargedimg" j'ajoute ou retire les classes css "img01, img02, img03, img04" contenant l'image agrandie via le code javascript.
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <button class="btn-product" onclick= "showproduct('img01')"><img src="" class=""></button>
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .img01 {content: url("img/image1.jpeg");}
    .img02 {content: url("img/image2.jpeg");}
    ..
    Code JavaScript : 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
    function showproduct($image) {
      $product_win = document.getElementById("enlargedimg");
      switch ($image) {
        case "img01":
           $product_win.classList.toggle($image);
           $product_win.classList.remove("img02", "img03", "img04");
           break;
        case "img02":
           $product_win.classList.toggle($image);
           $product_win.classList.remove("img01", "img03", "img04");
           break;
        case "img03":
           $product_win.classList.toggle($image);
           $product_win.classList.remove("img01", "img02", "img04");
           break;
        case "img04":
           $product_win.classList.toggle($image);
           $product_win.classList.remove("img01", "img02", "img03");
           break;
       }
    }

    J'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    case "img01":
           document.getElementById("enlargedimg").style.transition = "all 2s"; 
           $product_win.classList.toggle($image);
           $product_win.classList.remove("img02", "img03", "img04");
           break;
    Mais cela ne marche pas. Le but étant que l'affichage de l'image agrandie se fasse de manière soft (smooth).
    Merci pour votre aide.
    PS: je ne connais pas le javascript étant néophyte en la matière.

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    A voir la colorisation dans le code JavaScript, on voit qu'il y a des simples quottes ' mélangées avec des doubles ", erreur de frappe ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Par défaut
    Oui erreur de frappe..

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    Vous devez remplacer show-product par showProduct ou show_product dans les codes HTML et JS (- pas accepté en JS).

    $product_win = document.getElementById("enlargedimg"); : id inconnu dans les codes que vous avez donnés.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 11
    Par défaut
    Oui c'est fait mais je n'ai toujours pas cet effet de transition.. Est-ce dû au fait de l'utilisation de content:url() en css ?

    Le ID est celui d'un tag DIV qui va contenir l'image agrandie

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="enlargedimg"></div>

    A cet ID je rajoute ou enlève la classe img0X qui contient l'image agrandie après avoir cliqué sur l'une des vignettes qui se trouvent dans la colonne de droite.

Discussions similaires

  1. Effets de transition 3D entre 2 images
    Par pointer dans le forum Langage
    Réponses: 1
    Dernier message: 11/10/2007, 06h41
  2. Stopper un effet de transition sur un texte
    Par byonatane dans le forum Flash
    Réponses: 1
    Dernier message: 08/03/2007, 09h39
  3. fond d'écran + effet de transition
    Par ljonathan dans le forum Windows
    Réponses: 2
    Dernier message: 29/12/2006, 11h31
  4. Powerpoint : Inclure un effet de transition dans une macro
    Par netsabes dans le forum VBA PowerPoint
    Réponses: 10
    Dernier message: 03/08/2006, 22h38
  5. Effet de transition simple entre 2 images
    Par ChrisFAPS dans le forum Flash
    Réponses: 2
    Dernier message: 18/04/2003, 12h41

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