Ответ 1
Попробуйте $(this).css("opacity")
У меня есть фильтр, запущенный на множестве элементов списка, который уменьшает меньшие желаемые элементы до непрозрачности 0.25, но мне бы хотелось, чтобы их непрозрачность возвращалась в 1, а затем возвращалась вниз до 0,25 на зависании. Это довольно просто сделать?
У меня возникли проблемы с поиском способа захватить текущую непрозрачность выбранного элемента, чтобы я мог хранить его в переменной для использования.
$('#centerPanel li').hover(function(){
var currentOpacity = $(this).?????
$(this).fadeTo(1,1);
},
function(){
$(this).fadeTo(1,currentOpacity);
});
Попробуйте $(this).css("opacity")
есть полное руководство "Get Current Opacity в 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');
$('#centerPanel li').hover(function(){
if(!$(this).is(':animated'))
$(this).animate({opacity: 'toggle'}, 1000);
},
function(){
if(!$(this).is(':animated'))
$(this).animate({opacity: 'toggle'}, 1000);
});
Вам нужно установить переменную непрозрачности mouseout вне функции, это не позволит вашей функции изменять это значение.
nohoverOpacity = $('#centerPanel li').css("opacity");
hoverOpacity = 1;
dur = 1000;
$('#centerPanel li').hover(function(){
$(this).fadeTo(dur,hoverOpacity);
},function(){
$(this).fadeTo(dur,nohoverOpacity);
});
Это то, что вы хотите?:)