2010-06-04 41 views
14

Tengo un filtro ejecutándose en un conjunto de elementos de lista que desvanecen los elementos deseables menores hasta una opacidad de 0.25, pero me encantaría que su opacidad vuelva a 1 y luego retroceda a 0.25 al pasar el mouse sobre y fuera. ¿Es esto bastante simple de hacer?jQuery: ¿Puedes encontrar la opacidad del elemento seleccionado con jQuery?

Solo estoy teniendo problemas para encontrar la manera de obtener la opacidad actual del elemento seleccionado, así que puedo almacenarla en una variable para su uso.

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

cuidado con ese código. Si alguien mueve su mouse hacia adelante y hacia atrás a través de él, te rellenarán. – nickf

Respuesta

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

Esto en realidad no responde a la pregunta "¿puedes encontrar la opacidad del elemento seleccionado con jQuery? ... No lo hice -1. – Jeriko

+1

+1 - Si bien no responde la pregunta directamente, se relaciona con la configuración de la opacidad del elemento seleccionado. En otras palabras, tu ejemplo ilustra un buen punto. –

+0

@Jeriko: ¿No crees que si una respuesta difiere un poco de la pregunta exacta pero es una mejor solución para el problema básico, también debería mencionarse? – jAndy

1

Es necesario ajustar la opacidad mouseout var fuera de la función, esto evitará que su función para cambiar ese valor.

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

¿Esto es lo que quieres? :)

5

hay guía completa "Obtener opacidad actual en MSIE usando jQuery" http://zenverse.net/get-current-opacity-in-msie-using-jquery-cross-browser-codes/

código:

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'); 
Cuestiones relacionadas