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

jQuery Discussion :

Bouger l'image 2 en survolant l'image 1


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut Bouger l'image 2 en survolant l'image 1
    Bonjour,
    Ce que j'aimerai faire :
    Déplacer l’image 2 de 5px vers le bas en survolant l'image 1.

    Nom : reflet3.jpg
Affichages : 78
Taille : 4,0 Ko

    Je ne connais pas le javascript (un peu le css) mais je crois que ce code que j'ai trouvé pourrais m'aider à faire ce que je veux, mais ça ne marche pas, qu'est-ce qui ne va pas dans ce code ? (les id des images sont image1 et image2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    jQuery(document).ready(function($) {
     
        $('.image1').on('mouseenter', function() {
            $(".image2").addClass("move5px");
        });
    });
     
    $('.image1').on('mouseleave', function() {
        $(".image2").removeClass("move5px");
    });
    La classe que j'utilise :

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .move5px{
       top:-5px
    }

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 494
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 494
    Par défaut
    et en CSS ca n'irai pas ?
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    image 1 : <img src="http://placekitten.com/200/100" />
    image 2 : <img src="http://placekitten.com/200/101" />
    image 2 : <img src="http://placekitten.com/200/102" />
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    img { display: block; }
    img:first-of-type:hover + img { border: 2px solid red; }
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    tu n'est pas très loin.

    • Qui dit "id" (identifiant), dit "#"
    • Qui dit "class", dit "."


    IL faut aussi avoir intégré le script de jQuery.

    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    jQuery(document).ready(function($) {
     
        $('#image1').on('mouseenter', function() {
            $("#image2").addClass("move5px");
        });
    });
     
    $('#image1').on('mouseleave', function() {
        $("#image2").removeClass("move5px");
    });
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .move5px{
       margin-top:5px; 
    }

    Cela dit, on peut le faire SANS jQuery, en JavaScript vanilla :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var image1 = document.querySelector('#image1');
    var image2 = document.querySelector('#image2');
     
    image1.addEventListener('mouseenter', function(){
      image2.classList.add('move5px');
    });
    image1.addEventListener('mouseleave', function(){
      image2.classList.remove('move5px');
    });

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut
    Merci Doksuri mais je préférerai rester sur ce code de base et essayer de le rendre fonctionnel.

    Ok jreaux62, merci, je crois comprendre la logique de ce code (le premier avec Jquery), je l'ai utilisé et le hover fonctionne mais le mouseleave non, l'image reste avec son décalage de 5px, je précise que j'utilise un thème sur wordpress, je sais pas si ça a un rapport ?

    *edit*
    Ok j'ai déplacé les }); de la ligne 6 à la fin et le mouseleave fonctionne maintenant.
    Merci =)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut
    Je voulais que le déplacement de l'image soit animé alors j'ai rajouté une transition: 150ms; au code css :

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .move5px{
      margin-top:5px;
      transition: 150ms;
    }

    Le hover est maintenant animé mais le mouseleave lui est toujours sans animation, comment lui ajouter une animation aussi ?

  6. #6
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #image2 { transition: 150ms; }
    .move5px{
       margin-top:5px; 
    }

    Mais en réalité, ici, NUL besoin de JS ou jQuery !
    CSS suffit (comme indiqué par Doksuri) :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #image2 { transition: 150ms; }
    #image1:hover + #image2 { margin-top:5px; }

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Par défaut
    Parfait, merci beaucoup jreaux62 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment bouger des images
    Par ould64 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 04/01/2008, 22h14
  2. Comment bouger une image ?
    Par Invité dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 30/05/2007, 15h49
  3. bouger une image
    Par SENCABOY dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/06/2006, 18h12
  4. bouger une image dans une JScrollPane
    Par nonaM1982 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 05/05/2006, 15h48

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