0

ホバー時にテキストの背景色をフェードイン/フェードアウトしたいと思います。テキストが画像の上にあるので、背景色を透明からフェードインしてから透明に戻したいです。

これは私がこれまでに持っているものです:

    $('#nav li.menu').hover(
    function () {
        $(this).animate({backgroundColor: "#FFEF00"},300);

    }, 
    function () {
        $("li.menu").animate({backgroundColor: "Transparent"},300);         
    }
);

ただし、このコードを実行すると、アニメーションが開始される前に背景色が白に変わります。これを修正する方法を知っている人はいますか?

ありがとう、MJ

4

3 に答える 3

0

すべてのアニメーション化されたプロパティは、単一の数値にアニメーション化する必要があります。非数値のほとんどのプロパティは、基本的な jQuery 機能を使用してアニメーション化することはできません (たとえば、幅、高さ、または左はアニメーション化できますが、jQuery. Color()プラグインが使用されます)。特に指定がない限り、プロパティ値はピクセル数として扱われます。必要に応じて、単位 em および % を指定できます。

詳細については、これをチェックしてください

http://api.jquery.com/animate/

http://desizntech.info/2009/06/playing-with-jquery-color-plugin-and-color-animation/

于 2012-10-14T14:18:02.840 に答える
0

「透明」自体にはあまり意味がありません。色は、赤、緑、青、およびアルファによって定義されます。ページのデフォルトの背景色は白であるため、「透明」が実際には「アルファ 0 の白」に変換されるのは理にかなっています。

rgba()表記法を使用して、特定の「透明な」色を強制してみてください。

$("li.menu").animate({backgroundColor:"rgba(0xff,0xef,0,0)"});
于 2012-10-14T14:19:59.390 に答える
0

afshinが言うように、jqueryで背景色を簡単に変更することはできません。ただし、別の方法があります。テキストを div に入れ、div を背景と同じ色にします。(またはそれが何色であるべきか)

次に、css で別のクラスまたは ID を作成し、jquery を使用してホバー時にクラス/ID を変更します。(.getElementコマンド、知る必要がある場合)

幸運を祈ります。

于 2012-10-14T14:21:02.483 に答える