6

次の関数を使用して、任意の要素の背景色を取得できます。

$('.example').css('background') 

ただし、私の場合、マウスはこの要素上を移動しており、CSS:hover疑似クラスのために変更された色を受け取ります。

オリジナルカラーを受け取る方法はありますか?何かのようなもの

$('.example').cssWithoutHover('background')

ここでテストできます。最後のセルに5を入れるだけです。このセルの色は、アニメーション後に変更されます。

4

6 に答える 6

7

DOM対応で開始BGカラーのスイープを実行し、これらをデータ属性として保存できます。

var board = $('#board-numbers');
board.children('div').each(function() {
    $(this).data('start-bg', $(this).css('background'));
});
board.on('hover', 'div', function() {
    var curr_bg = $(this).css('background');
    var start_bg = $(this).data('start-bg');
});
于 2012-08-08T07:26:05.813 に答える
4

@vadimによって投稿されたアイデアを拡張して、私は1つ上手く行くことができると思います。単にclone()オブジェクトであり、DOMに配置しないでください。そうすれば、ホバーすることはできません!

css_color_without_hover_ = $('.example').clone(false).css('background');

ドキュメントのロード時に、コストがかかる可能性のあるDOMのスイープも実行する必要がなくなります。

とにかく私にとってはうまくいきます。

- 編集 -

この手法には制限(または「落とし穴」)があることに気づきました。

color-dataを取得しようとしている要素の色(またはbackground-color)が親要素から継承されている場合、複製されたオブジェクトはCSSパターンと一致しません。つまり、スタイルは一致しません。 jQueryオブジェクトに適用されます。

この場合の回避策は、代わりに(適切なスタイルが適用される)親オブジェクトのクローンを作成し、子ではなくそのスタイルをフェッチすることです。

于 2014-03-03T18:39:40.547 に答える
2

簡単にできないことはほぼ確実です。

これを行うための派生ソリューションは次のとおりです。

ページの読み込み後、背景色をカスタム属性(ホバーしても変更されない)に保存して、後で取得できるようにすることができます。

$().ready(function(){
    $('.example').each(function(el){
        $(this).data('bgcolor', $(this).css('background-color'));
    });
    $('.example').hover(function(ev){
        console.log($(this).data('bgcolor'));
    });
}):
于 2012-08-08T07:26:13.837 に答える
1

jssライブラリを使用できます。スタイルシートのルールにアクセスできます

于 2012-08-08T07:26:37.813 に答える
1

すべての背景色の定義を別のクラスに移動することを提案できます。また、特定のクラスの背景色が必要な場合は、要素をオンザフライで作成して背景色を取得でき、:hoverを変更しなくてもかまいません。そんな感じ:

$('<div class="normal-cell"></div>').css('background-color')
于 2012-08-08T07:32:12.310 に答える
0

別の解決策は、純粋なCSSではなく、jQuery hover()を使用してホバーのスタイルを変更することです。例えば、

$('.example').hover(
    function() { // handlerIn
        $(this).addClass('exampleHover');
    },
    function() { // handlerOut
        $(this).removeClass('exampleHover');
    }
);
于 2012-08-08T07:33:18.957 に答える