2011-02-07 35 views

Trả lời

2

Nếu bạn cung cấp cùng một vị trí tuyệt đối, sử dụng fadeIn() và fadeOut() sẽ có hiệu ứng này (được đính kèm với onmouseover và onmouseout).

4

Tôi nghĩ rằng this plugin là những gì bạn đang tìm kiếm. Nó cho phép bạn tạo hiệu ứng động giữa các lớp. Ví dụ:

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

+1 Đây cũng là cách tôi hiểu câu hỏi. Lưu ý rằng đối với hoạt ảnh màu, bạn cần có giao diện người dùng jQuery hoặc plugin như http://plugins.jquery.com/project/color – sunn0

+0

+1 Đối với liên kết đó. Tôi cho rằng jQuery có thể tạo hiệu ứng màu sắc. – Olical

+0

dường như không hoạt động với tôi – Alex

15

Hãy xem jQuery UI's extension to addClass. Nó cho phép một tham số thời gian để cho khả năng hoạt hình.

Ở đây, tôi nghĩ rằng bạn muốn làm một cái gì đó như thế này:

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

Rõ ràng bạn sẽ cần phải cài đặt jQuery UI cho việc này.

+0

nó có thể tạo hình nền động không? trên giao diện người dùng jquery chỉ có một vài thuộc tính css được liệt kê trong hoạt ảnh – Alex

+0

Hoàn hảo! Đây chính là điều tôi cần, cảm ơn. –

-2

tôi nghĩ rằng điều này có thể giúp đầy đủ cho bạn ....

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

Sử dụng phương thức toggleClass của jQuery để bật và tắt một lớp. Nó không có gì để làm với hai lớp và toggling giữa chúng. –

17

Nếu bạn không muốn sử dụng một plugin, bạn có thể làm như sau:

$(".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

Đây là triển khai của tôi:

 $(this).fadeOut("fast"); or $(this).hide(); 
     $(this).removeClass('css1').addClass('css2'); 
$(this).fadeIn("slow"); 
Các vấn đề liên quan