2010-06-04 6 views
14

У меня есть фильтр, запущенный на множестве элементов списка, который уменьшает меньшие желаемые элементы до непрозрачности 0.25, но мне бы хотелось, чтобы их непрозрачность возвращалась к 1, а затем возвращалась вниз до 0,25 на зависании. Это довольно просто сделать?jQuery: Вы можете найти непрозрачность выбранного элемента с помощью jQuery?

У меня возникли проблемы с поиском способа захватить текущую непрозрачность выбранного элемента, чтобы я мог хранить его в переменной для использования.

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

осторожны с этим кодом. Если кто-то двигает мышью туда и обратно, вы будете набиты. – nickf

ответ

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

На самом деле это не ответит на вопрос «можете ли вы найти непрозрачность выбранного элемента с помощью jQuery» ... Я не сделал этого, хотя вы. – Jeriko

+1

+1 - Не отвечая непосредственно на вопрос, это связано с установкой непрозрачности выбранного элемента. Другими словами, ваш пример иллюстрирует хороший момент. –

+0

@Jeriko: Разве вы не думаете, если ответ немного отличается от точного вопроса, но является лучшим решением для основной проблемы, следует также упомянуть? – jAndy

1

Вы должны установить MouseOut непрозрачности вар вне функции, это позволит предотвратить функцию, чтобы изменить это значение.

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

Это то, что вы хотите? :)

5

есть полное руководство "Get Current Непрозрачность в MSIE с помощью JQuery" http://zenverse.net/get-current-opacity-in-msie-using-jquery-cross-browser-codes/

код:

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'); 
Смежные вопросы