2010-06-04 30 views
14

Tôi có một bộ lọc chạy trên một tập hợp các phần tử danh sách làm mờ dần các phần tử mong muốn ít hơn đến 0,25 độ mờ nhưng tôi muốn có độ mờ đục của chúng là 1 và sau đó quay lại 0,25 khi di chuột qua và ra. Điều này khá đơn giản để làm?jQuery: Bạn có thể tìm thấy độ mờ đục của phần tử đã chọn với jQuery không?

Tôi chỉ gặp sự cố khi tìm cách lấy độ mờ hiện tại của phần tử đã chọn để tôi có thể lưu trữ trong biến để sử dụng.

$('#centerPanel li').hover(function(){ 
     var currentOpacity = $(this).????? 
     $(this).fadeTo(1,1); 
    }, 
    function(){ 
     $(this).fadeTo(1,currentOpacity); 
    }); 
+2

cẩn thận với mã mà. Nếu ai đó di chuyển chuột qua lại, bạn sẽ bị nhồi nhét. – nickf

Trả lời

1
$('#centerPanel li').hover(function(){ 
    if(!$(this).is(':animated')) 
     $(this).animate({opacity: 'toggle'}, 1000); 
}, 
function(){ 
    if(!$(this).is(':animated')) 
     $(this).animate({opacity: 'toggle'}, 1000); 
}); 
+0

Điều này không thực sự trả lời câu hỏi "bạn có thể tìm thấy độ mờ đục của phần tử đã chọn với jQuery" ... Tôi không -1 bạn mặc dù. – Jeriko

+1

+1 - Trong khi không trả lời trực tiếp câu hỏi, nó liên quan đến thiết lập độ mờ đục của phần tử đã chọn. Nói cách khác ví dụ của bạn minh họa một điểm tốt. –

+0

@ Jeriko: Bạn không nghĩ rằng, nếu một câu trả lời khác một chút so với câu hỏi chính xác nhưng là một giải pháp tốt hơn cho vấn đề cơ bản, cũng nên được đề cập? – jAndy

1

Bạn cần phải đặt var mouseout opacity ngoài chức năng, điều này sẽ ngăn chặn chức năng của bạn để thay đổi giá trị đó.

nohoverOpacity = $('#centerPanel li').css("opacity"); 
hoverOpacity = 1; 
dur = 1000; 
$('#centerPanel li').hover(function(){ 
     $(this).fadeTo(dur,hoverOpacity); 
    },function(){ 
     $(this).fadeTo(dur,nohoverOpacity); 
}); 

Đây có phải là những gì bạn muốn không? :)

5

có hoàn dẫn "Nhận Opacity hiện trong MSIE sử dụng jQuery" http://zenverse.net/get-current-opacity-in-msie-using-jquery-cross-browser-codes/

mã:

function getopacity(elem) { 
    var ori = $(elem).css('opacity'); 
    var ori2 = $(elem).css('filter'); 
    if (ori2) { 
    ori2 = parseInt(ori2.replace(')','').replace('alpha(opacity=',''))/100; 
    if (!isNaN(ori2) && ori2 != '') { 
     ori = ori2; 
    } 
    } 
    return ori; 
} 

//to use it 
var currentopacity = getopacity('div.the-element'); 
Các vấn đề liên quan