2012-01-20 35 views
7

Tôi cần để có thể mờ dần giữa các lớp và chuyển tiếp liền mạch bất kỳ và tất cả các kiểu được áp dụng cho phần tử và các phần tử của nó. Làm thế nào điều này có thể được thực hiện bằng cách sử dụng jQuery? Tôi biết cách thêm/xóa các lớp nhưng điều đó không giống như một sự chuyển tiếp đẹp giữa hai màu sắc khác nhau đáng kể.jQuery: làm thế nào để mờ dần giữa các lớp học?

+0

có thể trùng lặp: http://stackoverflow.com/questions/2176413 –

+0

Bạn có thể làm điều này với plugin Chuyển tiếp UI của jQuery (IIRC), nhưng tôi không thích đề xuất jQuery UI, nhưng đó là người tùy chọn. – Bojangles

+0

Nó có phải được thực hiện với jQuery không? Hầu hết các trình duyệt gần đây (ngoại trừ, tất nhiên, IE, ngoại trừ có thể phiên bản tiếp theo, IE10) hỗ trợ chuyển tiếp CSS ở một mức độ nào đó nếu bạn sử dụng các quy tắc kiểu độc quyền của chúng. Hay đó là vấn đề? – JayC

Trả lời

8

jQuery UI có một chức năng toggleClass rằng có một cuộc tranh cãi cho thời gian:

http://jqueryui.com/demos/toggleClass/

Ví dụ, tôi làm điều này trên một trang web của tôi (fade in/out the light class and fade/in out the dark class):

$('body').toggleClass('light', 250).toggleClass('dark', 250); 
+0

trông cực kỳ hứa hẹn. Tôi sẽ cho người kiểm tra việc đó. cảm ơn! – Andrew

+1

vì câu trả lời của bạn về mặt kỹ thuật đạt được những gì tôi đã hỏi, tôi cho bạn tín dụng, nhưng trải nghiệm của tôi với hoạt ảnh trên lớp jQuery UI là khủng khiếp. Tôi đã kết thúc hack một cái gì đó với nhau mà tham gia fading trong/out lớp được đặt phía sau nội dung. – Andrew

+0

Trong trường hợp đó, có thể có cách hiệu quả hơn để cấu trúc bố cục của bạn. Đôi khi tôi phải lặp lại kế hoạch của mình một nửa tá trước khi nó bắt đầu hoạt động lành mạnh. :) – Matt

0

Thử fadeIn.

$(".myClass").fadeIn("slow"); 

http://api.jquery.com/fadeIn/

Mặc dù phụ thuộc vào mức độ phức tạp bạn có thể cần jQuery UI như khác đã đề cập.

+3

Điều này sẽ mờ dần trong các phần tử, không phải lớp được áp dụng cho các phần tử. – Matt

+0

Đúng, chức năng này phải nằm trong imo lõi jQuery. –

3

Đây có phải là những gì bạn đang cố gắng hoàn thành không? Here's the jsFiddle

HTML:

<input type="button" id="toggle" value="toggle" /> 
<br /> 
<div id="classContainer"> 

    <div id = "class1"> 

    </div> 
    <div id = "class2"> 
    </div> 
</div> 

jQuery:

$("#toggle").click(function(){ 
    if ($("#class1").is(":visible")) { 
     $("#class1").fadeOut(); 
     $("#class2").fadeIn(); 
    } 
    else { 
     $("#class1").fadeIn(); 
     $("#class2").fadeOut(); 
    } 
}); 

CSS:

#classContainer 
{ 
    position: relative; 
} 

#class1, #class2 
{ 
    height: 100px; 
    width: 100px; 
    position: absolute; 
    top: 0; 
    left: 0; 
} 

#class1 
{ 
    background-color: red; 
    display: none; 
} 

#class2 
{ 
    background-color: blue; 
} 
+0

đây là cơ bản những gì tôi đã kết thúc – Andrew

Các vấn đề liên quan