【问题标题】:jQuery: Can you find the selected element's opacity with jQuery?jQuery:你能用 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);
    });

【问题讨论】:

  • 小心该代码。如果有人在上面来回移动鼠标,你会被塞住的。

标签: jquery opacity fadeto


【解决方案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

      【讨论】:

        猜你喜欢
        • 2011-02-27
        • 2013-11-03
        • 2011-08-29
        • 1970-01-01
        • 2012-06-25
        • 1970-01-01
        • 1970-01-01
        • 2014-03-13
        • 2014-09-19
        相关资源
        最近更新 更多