15

あまり望ましくない要素を0.25の不透明度にフェードダウンする一連のリスト要素で実行しているフィルターがありますが、それらの不透明度を1に戻し、ホバーしたり外したりすると0.25に戻したいと思います。これはかなり簡単ですか?

選択した要素の現在の不透明度を取得して、使用するために変数に保存する方法を見つけるのに苦労しているだけです。

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

4 に答える 4

32

試す$(this).css("opacity")

ソース

于 2010-06-04T09:13:20.217 に答える
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');
于 2012-01-13T00:52:49.320 に答える
1
$('#centerPanel li').hover(function(){
    if(!$(this).is(':animated'))
       $(this).animate({opacity: 'toggle'}, 1000);
},
function(){
    if(!$(this).is(':animated'))
       $(this).animate({opacity: 'toggle'}, 1000);
});
于 2010-06-04T09:17:12.270 に答える
1

関数の外でマウスアウト不透明度変数を設定する必要があります。これにより、関数がその値を変更できなくなります。

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

これは、あなたの望むことですか?:)

于 2010-06-04T09:26:47.130 に答える