我在一组列表元素上运行了一个过滤器,它将较小的理想元素淡化到0.25不透明度但是我希望它们的不透明度返回到1,然后在悬停时反复回到0.25。这样做很简单吗?
我只是难以找到一种方法来获取所选元素的当前不透明度,因此我可以将其存储在变量中以供使用。
$('#centerPanel li').hover(function(){
var currentOpacity = $(this).?????
$(this).fadeTo(1,1);
},
function(){
$(this).fadeTo(1,currentOpacity);
});
答案 0 :(得分:30)
尝试$(this).css("opacity")
答案 1 :(得分:6)
有完整指南“使用jQuery在MSIE中获取当前不透明度”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');
答案 2 :(得分:1)
$('#centerPanel li').hover(function(){
if(!$(this).is(':animated'))
$(this).animate({opacity: 'toggle'}, 1000);
},
function(){
if(!$(this).is(':animated'))
$(this).animate({opacity: 'toggle'}, 1000);
});
答案 3 :(得分:1)
您需要在函数外部设置mouseout opacity var,这会阻止您的函数更改该值。
nohoverOpacity = $('#centerPanel li').css("opacity");
hoverOpacity = 1;
dur = 1000;
$('#centerPanel li').hover(function(){
$(this).fadeTo(dur,hoverOpacity);
},function(){
$(this).fadeTo(dur,nohoverOpacity);
});
这是你想要的吗? :)