2010-06-04 18 views
14

Ich habe einen Filter, der auf einer Reihe von Listenelementen läuft, die die weniger wünschenswerten Elemente bis zu einer Deckkraft von 0,25 abblendet, aber ich würde gerne ihre Deckkraft auf 1 und dann wieder auf 0,25 beim Schwebeflug zurücksetzen. Ist das ziemlich einfach zu tun?jQuery: Finden Sie die Opazität des ausgewählten Elements mit jQuery?

Ich habe nur Probleme, einen Weg zu finden, um die aktuelle Opazität des ausgewählten Elements zu erfassen, so dass ich es in einer Variablen zur Verwendung speichern kann.

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

mit diesem Code vorsichtig. Wenn jemand seine Maus darüber hin und her bewegt, wirst du vollgestopft sein. – nickf

Antwort

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

Dies beantwortet nicht wirklich die Frage "Kannst du die Opazität des ausgewählten Elements mit jQuery finden" ... Ich habe dich nicht -1. – Jeriko

+1

+1 - Während die Frage nicht direkt beantwortet wird, bezieht sie sich auf die Deckkraft des ausgewählten Elements. Mit anderen Worten, Ihr Beispiel zeigt einen guten Punkt. –

+0

@ Jeriko: Denken Sie nicht, wenn eine Antwort ein wenig von der genauen Frage unterscheidet, aber eine bessere Lösung für das grundlegende Problem ist, sollte auch erwähnt werden? – jAndy

1

Sie benötigen die mouseout Opazität var außerhalb der Funktion zu setzen, wird dies Ihre Funktion zu verhindern, diesen Wert zu ändern.

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

Ist das was du willst? :)

5

gibt es komplette Anleitung "Get Current Opazität in MSIE jQuery mit" http://zenverse.net/get-current-opacity-in-msie-using-jquery-cross-browser-codes/

Code:

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'); 
Verwandte Themen