jQuery: Можете ли вы найти прозрачность выбранного элемента с помощью jQuery? - PullRequest
14 голосов
/ 04 июня 2010

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

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

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

Ответы [ 4 ]

30 голосов
/ 04 июня 2010

Попробуйте $(this).css("opacity")

источник

6 голосов
/ 13 января 2012

есть полное руководство "Получить текущую непрозрачность в 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');
1 голос
/ 04 июня 2010

Вам нужно установить непрозрачность мышки var вне функции, это помешает вашей функции изменить это значение.

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

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

1 голос
/ 04 июня 2010
$('#centerPanel li').hover(function(){
    if(!$(this).is(':animated'))
       $(this).animate({opacity: 'toggle'}, 1000);
},
function(){
    if(!$(this).is(':animated'))
       $(this).animate({opacity: 'toggle'}, 1000);
});
...