8

jQueryのハイライト効果がフェードする色を変更することはできますか?

現在、黄色でハイライトを開始し、次に白にフェードしてからフェードアウトします。

最終的には、背景色を黄色で強調表示してから、透明にフェードするだけです。

4

4 に答える 4

5

jQuery UI 1.8.9でもこの動作に遭遇しましたが、バグのようです。

私にとっての回避策は、デフォルトで透明にするのではなく、CSS で強調表示していた要素の背景色を定義することでした。

背景色が設定されていない (つまり、透明である) 場合、ハイライト色を変更していないと仮定すると、要素が黄色にフェードし、次に白にフェードアウトしてからフェードアウトします。

ただし、強調表示している要素の背景色を設定すると、要素を強調表示したときに要素の元の色に黄色にフェードします。

于 2011-06-02T00:23:57.590 に答える
1
$("#id").effect( "highlight",{color:'#FFFF00',easing:'easeInElastic'},4000 );

効果のオプション オブジェクトでは、色の既定のプロパティを任意に変更できます。私の要素は色に設定されておらず、明るい黄色で強調表示された後、何も表示されなくなります。jQuery 1.8.1 と jQuery-UI を使用しています。

于 2013-02-26T15:02:49.910 に答える
0

以下は、jQueryUI1.8.9のハイライト効果のソースコードです。白にフェードするようには見えません...黄色(#ffff99または渡したカラーオプション)から、変数にキャッシュされている元の背景色にフェードする必要がありますanimation。1.8.9を使用していますか?

/*
 * jQuery UI Effects Highlight 1.8.9
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Effects/Highlight
 *
 * Depends:
 *  jquery.effects.core.js
 */
(function( $, undefined ) {

$.effects.highlight = function(o) {
    return this.queue(function() {
        var elem = $(this),
            props = ['backgroundImage', 'backgroundColor', 'opacity'],
            mode = $.effects.setMode(elem, o.options.mode || 'show'),
            animation = {
                backgroundColor: elem.css('backgroundColor')
            };

        if (mode == 'hide') {
            animation.opacity = 0;
        }

        $.effects.save(elem, props);
        elem
            .show()
            .css({
                backgroundImage: 'none',
                backgroundColor: o.options.color || '#ffff99'
            })
            .animate(animation, {
                queue: false,
                duration: o.duration,
                easing: o.options.easing,
                complete: function() {
                    (mode == 'hide' && elem.hide());
                    $.effects.restore(elem, props);
                    (mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter'));
                    (o.callback && o.callback.apply(this, arguments));
                    elem.dequeue();
                }
            });
    });
};
于 2011-06-01T22:04:55.430 に答える
0

jQuery Color プラグインを使用: https://github.com/jquery/jquery-color

それを使用すると、要素を強調表示し、透明にフェードバックすることができます。

于 2012-09-11T13:21:28.903 に答える