jQuery在悬停时将元素从一个类淡化为另一个类

时间:2011-02-07 10:08:05

标签: jquery css effects fadein jquery-effects

可以这样做吗?

例如。

.class1{
  background-image:(whatever.jpg)
  color: #fff;
}

.class2{
  background-image:(whatever2.jpg)
  color: #999;
}

当鼠标悬停在元素上时,我可以淡化所有具有class1到class2的元素,当鼠标离开时,可以淡化到class1吗?

7 个答案:

答案 0 :(得分:17)

如果您不想使用插件,可以执行以下操作:

$(".class1").hover(
function () {
    $(this).fadeOut(function () {
        $(this).removeClass("class1").addClass("class2").fadeIn('fast');
    });
},
function () {
    $(this).fadeOut(function () {
        $(this).removeClass("class2").addClass("class1").fadeIn('fast');
    });
});

答案 1 :(得分:15)

看看jQuery UI's extension to addClass。它允许持续时间参数提供动画的可能性。

在这里,我想你想做这样的事情:

$('.class1').hover(function(){
    $(this).addClass('class2', 800);
}, function(){
    $(this).removeClass('class2', 800);
});

显然你需要为此安装jQuery UI。

答案 2 :(得分:4)

我认为this plugin正是您所寻找的。它允许您在类之间设置动画。例如:

$('.class1').animateToClass('.class2', 1000);

答案 3 :(得分:2)

如果你给两个绝对位置相同,使用fadeIn()和fadeOut()将产生这种效果(附加到onmouseover和onmouseout)。

答案 4 :(得分:1)

这是我的实施:

      $(this).fadeOut("fast"); or $(this).hide();
      $(this).removeClass('css1').addClass('css2');
 $(this).fadeIn("slow");

答案 5 :(得分:0)

通过为Jquery hover()提供handlerIn和handlerOut函数,其功能为documented here,您可以轻松地处理mouse in和mouse out事件。接下来,看看Jquery UI switchClass(),以一种干净的方式轻松地在两个类之间切换。最后,添加fadeIn()使所有这些工作都变得清晰。

$("div.class1").hover(
 function(){$("div").switchClass("class1", "class2").fadeIn(800);},
 function(){$("div").switchClass("class2", "class1").fadeIn(800);}
);

Working CodePen

答案 6 :(得分:-2)

我认为这可能对你有所帮助....

$('.class1').mouseover(function() {
    $(this).toggleClass('class2');
 });