web-dev-qa-db-fra.com

Ajout d'attributs CSS de survol via jQuery / Javascript

Certains styles CSS doivent être appliqués à un élément en survol, et les styles CSS doivent être appliqués à l'aide de javascript/jquery directement et non via des feuilles de style ou $(this).addClass('someStyle') car j'injecte les éléments DOM dans une autre page.

Nous pouvons appliquer les styles CSS habituels en utilisant

$('#some-content').css({
    marginTop: '60px',
    display: 'inline-block'
});

Comment devrions-nous ajouter les styles CSS pour :hover événements?


Faut-il recourir à:

$('#some-content').hover(
       function(){ $(this).css('display', 'block') },
       function(){ $(this).css('display', 'none') }
)
32
Nyxynyx

Je trouve que l'utilisation de mouseenter et de mouseleave est meilleure que le vol stationnaire. Il y a plus de contrôle.

$("#somecontent").mouseenter(function() {
    $(this).css("background", "#F00").css("border-radius", "3px");
}).mouseleave(function() {
     $(this).css("background", "00F").css("border-radius", "0px");
});
26
Jon

Essaye ça:

$('#some-content').hover(function(){
    $(this).css({ marginTop: '60px', display: 'inline-block' });
}, function(){
    $(this).css({ //other stuff });
});

ou en utilisant des classes

$('#some-content').hover(function(){
    $(this).toggleClass('newClass');
});

Plus d'informations ici . Hover () et . ToggleClass ()

14
Mark Walters

Vous devez les mettre dans un événement hover :

var elem = $('#elem');

elem.hover(function () {
    // ... :hover, set styles
}, function () {
    // ... this function is called when the mouse leaves the item, set back the
    //     normal styles
});

Cependant, je recommande complètement de mettre votre CSS dans des classes et d'utiliser ces classes dans JS, vous devez diviser les langues autant que possible.

3
Wouter J
$("#someObj").hover(function(){
    $(this).css(...);
}:);

http://api.jquery.com/hover/

2
Laz Karimov