通过jQuery/Javascript添加悬停CSS属性

Nyx*_*nyx 32 html javascript css jquery hover

一些CSS样式需要在悬停时应用于元素,并且必须使用javascript/jquery直接应用CSS样式,而不是通过样式表或$(this).addClass('someStyle')因为我将DOM元素注入到另一个页面中.

我们可以使用通常的CSS样式

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

我们应该如何为:hover事件添加CSS样式?


我们必须求助于:

$('#some-content').hover(
       function(){ $(this).css('display', 'block') },
       function(){ $(this).css('display', 'none') }
)
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 26

我发现使用mouseenter和mouseleave比悬停更好.有更多的控制权.

$("#somecontent").mouseenter(function() {
    $(this).css("background", "#F00").css("border-radius", "3px");
}).mouseleave(function() {
     $(this).css("background", "00F").css("border-radius", "0px");
});
Run Code Online (Sandbox Code Playgroud)

  • 注意详细阐述"有更多控制权"的声明?据我所知,`.hover()`函数只是一个用于精确编码的简写. (6认同)
  • 我只是喜欢它的明确性,即"鼠标进入元素"和"鼠标离开元素".但是,此页面上的图表表明实时mouseenter/mouseleave在优化方面是最好的.http://jsperf.com/hover-vs-mouseenter (4认同)

Mar*_*ers 14

试试这个:

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

或使用类

$('#some-content').hover(function(){
    $(this).toggleClass('newClass');
});
Run Code Online (Sandbox Code Playgroud)

更多信息,请访问.hover().toggleClass()