2011-08-05 47 views
20

tôi có mã nàyjQuery thay đổi css thuộc tính chậm

$('#uiAdminPanelMenu li a').hover(function(){ 
    $(this).css('background-color', '#D3E1FA'; 
}, 
function(){ 
    $(this).css('background-color', '#F4F4F4'); 
}); 

nó thay đổi màu nền của các liên kết, nhưng tôi muốn nó để thay đổi nó từ từ, kinda giống như hiệu ứng mờ dần, nhưng đối với trường hợp này.

+4

thậm chí có thể [animate()] (http://api.jquery.com/animate/) nó ? –

Trả lời

28

Bạn có thể thực hiện điều tương tự với hiệu ứng chuyển tiếp CSS3. Kết quả sẽ gần như giống hệt nhau.

#uiAdminPanelMenu li a { 
    background-color: F4F4F4; 
    -webkit-transition: background-color 0.4s ease; 
    -moz-transition: background-color 0.4s ease; 
    -o-transition: background-color 0.4s ease; 
    transition: background-color 0.4s ease; 
} 

#uiAdminPanelMenu li a:hover { 
    background-color: D3E1FA; 
} 
+0

rất đẹp, cảm ơn bạn! – Grigor

+2

hoạt động hoàn hảo cho các trình duyệt cao cấp. nhưng IE không nhận ra nó, vì vậy jQuery là tốt hơn cho điều này tôi nghĩ rằng – Grigor

+0

Vâng, IE chưa bao giờ thích chơi đẹp .... : { – awesomesyntax

20

Bạn muốn sử dụng animate(), nhưng bạn cũng cần Color Plugin for jQuery.

Với plugin màu được đưa vào, đoạn code sau hoạt động tốt:

$('#uiAdminPanelMenu li a').hover(function(){ 
    $(this).animate({'background-color': '#D3E1FA'}, 'slow'); 
}, 
function(){ 
    $(this).animate({'background-color': '#F4F4F4'}, 'slow'); 
}); 
+1

IE: http://jsfiddle.net/qa7R2/ – Paulpro

+1

Lỗi 404 cho * Plugin màu của jQuery * – Lucio

+1

@Lucio Cảm ơn bạn đã thông báo cho tôi. Các phiên bản mới nhất của plugin màu tương thích với jQuery 2. Tôi đã cập nhật liên kết và câu trả lời. – Paulpro

0

Có thể rất muộn để trả lời câu hỏi này, nhưng vẫn muốn cung cấp giải pháp thay thế phù hợp với tôi. (Cả hai câu trả lời được cung cấp trước đó sẽ hoạt động). Tôi đã sử dụng CSS Animation và hoạt động tốt hơn cho tôi so với jquery animate trong vài trường hợp khác. Bạn có thể thử dưới đây -

// 'bcolor' là phim hoạt hình tên keyframe định nghĩa sau

#uiAdminPanelMenu li a:hover { 
    -webkit-animation-name: bcolor; 
    -webkit-animation-duration: 1s; 
    -webkit-animation-fill-mode: forwards; 
    -moz-animation-name: bcolor; 
    -moz-animation-duration: 1s; 
    -moz-animation-fill-mode: forwards; 
    animation-name: bcolor; 
    animation-duration: 1s;  
    animation-fill-mode: forwards; 
} 

@-webkit-keyframes shadeOn { 
    from {background-color: #F4F4F4;} 
    to {background-color: #D3E1FA;} 
} 
@-moz-keyframes shadeOn { 
    from {background-color: #F4F4F4;} 
    to {background-color: #D3E1FA;} 
} 
@keyframes shadeOn { 
    from {background-color: #F4F4F4;} 
    to {background-color: #D3E1FA;} 
} 
Các vấn đề liên quan