jQuery:你能用 jQuery 找到所选元素的不透明度吗?
Posted
技术标签:
【中文标题】jQuery:你能用 jQuery 找到所选元素的不透明度吗?【英文标题】:jQuery: Can you find the selected element's opacity with jQuery? 【发布时间】:2011-02-27 16:52:35 【问题描述】:我有一个在一组列表元素上运行的过滤器,它将不太理想的元素淡化到 0.25 不透明度,但我希望它们的不透明度恢复到 1,然后在悬停时又回到 0.25。这很简单吗?
我只是很难找到一种方法来获取所选元素的当前不透明度,以便将其存储在一个变量中以供使用。
$('#centerPanel li').hover(function()
var currentOpacity = $(this).?????
$(this).fadeTo(1,1);
,
function()
$(this).fadeTo(1,currentOpacity);
);
【问题讨论】:
小心该代码。如果有人在上面来回移动鼠标,你会被塞住的。 【参考方案1】:有完整指南“使用 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】:您需要在函数外部设置 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);
);
这是你想要的吗? :)
【讨论】:
【参考方案3】:$('#centerPanel li').hover(function()
if(!$(this).is(':animated'))
$(this).animate(opacity: 'toggle', 1000);
,
function()
if(!$(this).is(':animated'))
$(this).animate(opacity: 'toggle', 1000);
);
【讨论】:
这实际上并没有回答“你能用 jQuery 找到所选元素的不透明度吗”这个问题......虽然我没有 -1。 +1 - 虽然不直接回答问题,但它与设置所选元素的不透明度有关。换句话说,您的示例说明了一个很好的观点。 @Jeriko:你不觉得,如果一个答案与确切的问题有点不同,但对于基本问题来说是一个更好的解决方案,也应该被提及? 我完全同意 jAndy,这就是为什么我没有 -1 你。我越来越注意到人们并不总是希望得到纠正。他们只是想在他们的问题范围内得到建议。如果你先回答他,然后提出更好的解决方法,你会得到一个很好的答案:)【参考方案4】:试试$(this).css("opacity")
source
【讨论】:
以上是关于jQuery:你能用 jQuery 找到所选元素的不透明度吗?的主要内容,如果未能解决你的问题,请参考以下文章