2011-02-07 2 views
8

можно ли это сделать?jQuery исчезают элементы из одного класса в другой, на ходу

например.

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

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

я могу исчезать все элементы, которые имеют Class1 к class2, когда мышь находится над элементом, и обратно class1, когда мышь находится вне дома?

ответ

2

Если вы даете как же абсолютное положение, используя FadeIn() и FADEOUT() будет иметь этот эффект (прилагается к OnMouseOver и onmouseout).

4

Я думаю, что this plugin - это то, что вы ищете. Это позволяет вам анимировать между классами. Например:

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

+1 Это также, как я понял вопрос. Обратите внимание, что для цветных анимаций вам потребуется либо jQuery UI, либо плагин, например http://plugins.jquery.com/project/color – sunn0

+0

+1 Для этой ссылки. Я предположил, что jQuery может анимировать цвет. – Olical

+0

, похоже, не работает для меня – Alex

15

Посмотрите на jQuery UI's extension to addClass. Он позволяет параметру длительности дать возможность анимации.

Здесь, я думаю, что вы хотите сделать что-то вроде этого:

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

Очевидно, что вам нужно установить JQuery UI для этого.

+0

Может ли он анимировать фоновое изображение? на jquery UI есть только несколько свойств css, перечисленных в анимации. – Alex

+0

Отлично! Это было именно то, что мне нужно, спасибо. –

-2

я думаю, что это может быть помочь вам полный ....

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

Использование метода toggleClass jQuery позволяет включать и выключать один класс. Это не имеет ничего общего с двумя классами и переключением между ними. –

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

Это моя реализация:

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