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

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Points : 3
    Points
    3
    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 : 60
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
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    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 : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    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
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Points : 3
    Points
    3
    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
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 5
    Points : 3
    Points
    3
    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 : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    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
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

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

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    Citation Envoyé par Doksuri Voir le message
    et en CSS ca n'irai pas ?
    Citation Envoyé par lyser Voir le message
    Merci Doksuri mais je préférerai rester sur ce code de base et essayer de le rendre fonctionnel.
    Citation Envoyé par jreaux62 Voir le message
    Mais en réalité, ici, NUL besoin de JS ou jQuery : [quasiment le meme css que moi]
    Citation Envoyé par lyser Voir le message
    Parfait, merci beaucoup jreaux62 !
    .............
    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 !

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

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

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    Par défaut
    @Doksuri

    (j'ai mis à jour mon message précédent )

    s'il veut conserver le code JQuery, libre à lui, non ?
    Tant qu'il est content du résultat...

    Sinon, en CSS, il existe encore moult solutions, notamment pour traiter plusieurs groupes "image + ombre" via des classes, sélecteur adjacent (+) et éventuellement position:absolute.

+ 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