jQueryで要素を「フラッシュ」する方法


249

私はjQueryを初めて使用し、Prototypeを使用した経験があります。プロトタイプには、要素を「フラッシュ」するメソッドがあります。それを別の色で簡単に強調表示し、通常の色にフェードバックして、ユーザーの目を引き付けます。jQueryにそのようなメソッドはありますか?fadeIn、fadeOut、およびアニメーションが表示されますが、「フラッシュ」のようなものは表示されません。おそらく、これら3つのうちの1つを適切な入力で使用できますか?


4
これはOPに答えていませんが、(緩くテスト)コードは、(自分自身のように)将来のGoogleの検索ユーザーに有用である可能性がある:$.fn.flash = function(times, duration) { var T = this; times = times || 3; duration = duration || 200; for ( var i=0; i < times; i++ ) { (function() { setTimeout(function() { T.fadeOut(duration, function() { T.fadeIn(duration); }); }, i*duration*2+50); })(i); } };
コーリーMawhorter

3
このcssを要素に追加します:text-decoration:blink、それを削除します。
認知症


:私はこのページに見られるより良い答えだと思うことをデモここJSFiddleを入れstackoverflow.com/a/52283660/470749
ライアン

まばたきはアニメーションのために正式に非推奨になっていることに注意してください。チェック:w3.org/TR/2019/CR-css-text-decor-3-20190813/#valdef-text-decoration-line-blink
OrizG

回答:


318

私のやり方は.fadein、.fadeout .fadein、.fadeout ......

$("#someElement").fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100);


14
最も美しいソリューションではありませんが、短く、理解しやすく、UI /エフェクトを必要としません。いいね!
Chris Jaynes、2012

21
以下のような私がフェードイン、フェードアウトシーケンスの前に遅延を使用し、何か $('..').delay(100).fadeOut().fadeIn('slow')
alexandru.topliceanu

1
点滅している背景は、粘着性があるように見えるか、単に不快に見えるだけです。特に、点滅しているアイテムが白い背景の上にある場合は特にそうです。などの色のプラグインを追加し、背景をフラッシュしようとする前に、この最初のを試してみてください
Simon_Weaver

4
この方法の問題は、これらのイベントが互いに踏み込む可能性があることです。おそらく、後続の各fadeInおよびfadeOutをそれぞれのコールバックに配置する必要があります。例: var $someElement = $("#someElement"); $someElement.fadeIn(100, function(){ $someElement.fadeOut(100, function(){ /*...etc...*/ }) })
thekingoftruth 2013

頻繁に呼び出される可能性のある検証コードでこれを使用することに注意してください。コードが適切なタイミングで呼び出されると、要素が表示されないはずの要素が表示される可能性があります(またはその逆)
Chris Pfohl

122

jQuery Colorプラグインを使用できます

たとえば、ページ上のすべてのdivに注意を引くには、次のコードを使用できます。

$("div").stop().css("background-color", "#FFFF9C")
    .animate({ backgroundColor: "#FFFFFF"}, 1500);

編集-新規および改善

以下は上記と同じ手法を使用していますが、次のような利点もあります。

  • パラメータ化されたハイライトの色と継続時間
  • 白であると想定せずに、元の背景色を保持する
  • jQueryの拡張であるため、任意のオブジェクトで使用できます

jQueryオブジェクトを拡張します。

var notLocked = true;
$.fn.animateHighlight = function(highlightColor, duration) {
    var highlightBg = highlightColor || "#FFFF9C";
    var animateMs = duration || 1500;
    var originalBg = this.css("backgroundColor");
    if (notLocked) {
        notLocked = false;
        this.stop().css("background-color", highlightBg)
            .animate({backgroundColor: originalBg}, animateMs);
        setTimeout( function() { notLocked = true; }, animateMs);
    }
};

使用例:

$("div").animateHighlight("#dd0000", 1000);

4
私も動作しません-これはカラーアニメーションプラグインに依存していないのですか?plugins.jquery.com/project/color
UpTheCreek

18
.animate()のjquery docsから:すべてのアニメーション化されたプロパティは単一の数値である必要があります(以下に記載されている場合を除く)。数値以外のプロパティは、基本的なjQuery機能を使用してアニメーション化することはできません。(たとえば、幅、高さ、左はアニメーション化できますが、背景色はアニメーション化できません。)したがって、プラグインを利用せずにプラグインを利用していると思います。
UpTheCreek 2010

4
オブジェクトを返さないことに気づきました。この小さな効果(EG:$( "#qtyonhand")。animateHighlight( "#c3d69b"、1500).delay(1500).animateHighlight( "#76923C"、5000);)を積み重ねてみたところ、エラーが発生しました。「これを返す」を追加する必要がありました。メソッドの最後まで。
セージ

2
公式のjQueryドキュメントでは、これを機能させるにはjQuery.Color()プラグインを使用する必要があるとしています:github.com/jquery/jquery-color
jchook

3
jquery .animate docsから:Note: The jQuery UI project extends the .animate() method by allowing some non-numeric styles such as colors to be animated.-色をアニメーション化する場合は、jQuery UIまたは他のプラグインが必要です。
Adam Tomat 2013

101

css3アニメーションを使用して要素をフラッシュできます

.flash {
  -moz-animation: flash 1s ease-out;
  -moz-animation-iteration-count: 1;

  -webkit-animation: flash 1s ease-out;
  -webkit-animation-iteration-count: 1;

  -ms-animation: flash 1s ease-out;
  -ms-animation-iteration-count: 1;
}

@keyframes flash {
    0% { background-color: transparent; }
    50% { background-color: #fbf8b2; }
    100% { background-color: transparent; }
}

@-webkit-keyframes flash {
    0% { background-color: transparent; }
    50% { background-color: #fbf8b2; }
    100% { background-color: transparent; }
}

@-moz-keyframes flash {
    0% { background-color: transparent; }
    50% { background-color: #fbf8b2; }
    100% { background-color: transparent; }
}

@-ms-keyframes flash {
    0% { background-color: transparent; }
    50% { background-color: #fbf8b2; }
    100% { background-color: transparent; }
}

そして、あなたはjQueryでクラスを追加します

jQuery(selector).addClass("flash");

それが一度だけ動作する必要がある場合、素晴らしい解決策。クラスが追加された後、クラスを追加しても(論理的に)要素がフラッシュされません。
サイモン2013年

7
最高のアイデア。settimeoutを使用して、効果の2秒後にクラスを削除しました
2013

6
アニメーションの完了後にクラスを削除して、フラッシュを続けることができる例を次に示します。jsfiddle.net/daCrosby/eTcXX/1
DACrosby

すばらしいですが、スタイルシートバリデータを渡したい場合、background-colorの正しいプロパティは「none」ではなく「transparent」であることに注意してください。
Jan M

1
最近のすべてのブラウザーは通常のルール@keyframesanimationルールをサポートしているため、(Blackberryブラウザーの場合)以外に接頭辞付きのバージョンを使用する必要はありません -webkit-
coredumperror 2017年

74

5年後...(そして追加のプラグインは必要ありません)

これは、divの背景色を背後に配置し、オブジェクトをフェードアウトして再びフェードインすることで、希望の色(白など)に「パルス」します。

HTMLオブジェクト(ボタンなど):

<div style="background: #fff;">
  <input type="submit" class="element" value="Whatever" />
</div>

jQuery(バニラ、他のプラグインなし):

$('.element').fadeTo(100, 0.3, function() { $(this).fadeTo(500, 1.0); });

要素 -クラス名

最初の番号でのfadeTo()移行のためのミリ秒-

第二の数におけるfadeTo()フェード/ unfade後のオブジェクトの不透明度-

これは、このWebページの右下隅で確認できます。https//single.majlovesreg.one/v1/

$(this)を使用して複製されたセレクターを編集(willsteel)せず、値を微調整して(OPが要求したとおりに)フラッシュを実際に実行します。


60
fadeTo(0000)-メタリカ
バルカンレイヴン

2
バターのように滑らか!すべての最良のソリューション。ありがとう!
ColdTuna 2015年

1
これを無限にする方法は?
tomexsans 2015

1
リンクの例は壊れています。
メッシュの

1
@tomexsans $.fn.flashUnlimited=function(){$(this).fadeTo('medium',0.3,function(){$(this).fadeTo('medium',1.0,$(this).flashUnlimited);});}それを次のように呼び出すことができます$('#mydiv').flashUnlimited();-これはMajal が上記で回答したことを実行し、サイクルの終わりに再び自分自身を呼び出します。
ジェイダダニア

46

jQuery UIの強調表示効果を使用して同じことを達成できると思います。


8
これはかなり重いjQueryUIの一部であり、標準のjQueryライブラリの一部ではありません(依存するUIエフェクトコアを使用することもできます)。
UpTheCreek 2010

3
エフェクトコア+必要なエフェクトのみをダウンロードできます。これは、「ハイライト」+「脈動」の場合、12 KBになります。完全に軽いわけではありませんが、それほど重いわけでもありません。
ロマン・スターコフ2011

45

jQueryUIを使用している場合はpulsateUI/Effects

$("div").click(function () {
      $(this).effect("pulsate", { times:3 }, 2000);
});

http://docs.jquery.com/UI/Effects/Pulsate


1
@DavidYell、新しい質問を開いてサンプルコードを投稿してください。 pulsateChromeで正常に動作します。
SooDesuNe

5秒ごとに点滅:setInterval(function(){$( "。red-flag")。effect( "pulsate"、{times:3}、2000);}、5000);
Adrian P.

@allこれがcss3アニメーションや変換を使用している場合、誰かいますか?とにかくいい(しかし、私は他の答えの1つと同じようにcss3を好む)
Martin Meeser 14

18
$('#district').css({opacity: 0});
$('#district').animate({opacity: 1}, 700 );

1
これはシンプルでエレガントです。
Gra

css プロパティを切り替えるため、他の兄弟要素を使用fadeInしてfadeOut影響を与えている間display、私の場合は奇妙に見えます。しかし、これは問題を修正します。おかげで、それは魅力のようにエレガントに機能します。
fsevenm

15

このプラグインを使用できます(jsファイルに入れて、script-tagを介して使用します)

http://plugins.jquery.com/project/color

そして、次のようなものを使用します:

jQuery.fn.flash = function( color, duration )
{

    var current = this.css( 'color' );

    this.animate( { color: 'rgb(' + color + ')' }, duration / 2 );
    this.animate( { color: current }, duration / 2 );

}

これにより、すべてのjQueryオブジェクトに「flash」メソッドが追加されます。

$( '#importantElement' ).flash( '255,0,0', 1000 );

12

Desheng Liの方法をさらに拡張するには、次のように反復回数で複数のフラッシュを実行できるようにします。

// Extend jquery with flashing for elements
$.fn.flash = function(duration, iterations) {
    duration = duration || 1000; // Default to 1 second
    iterations = iterations || 1; // Default to 1 iteration
    var iterationDuration = Math.floor(duration / iterations);

    for (var i = 0; i < iterations; i++) {
        this.fadeOut(iterationDuration).fadeIn(iterationDuration);
    }
    return this;
}

次に、時間とフラッシュの数を指定してメソッドを呼び出すことができます。

$("#someElementId").flash(1000, 4); // Flash 4 times over a period of 1 second

var iterationDuration = Math.floor(duration / iterations);奇数で除算できるように変更し、return this;その後に他のメソッドをチェーンできるようにしました。
user1477388 14

これは本当に何の色も変えませんか?
2014

12

純粋なjQueryソリューション。

(jquery-ui / animate / colorは必要ありません。)

jqueryの色を読み込まずに、黄色の「フラッシュ」効果だけが必要な場合:

var flash = function(elements) {
  var opacity = 100;
  var color = "255, 255, 20" // has to be in this format since we use rgba
  var interval = setInterval(function() {
    opacity -= 3;
    if (opacity <= 0) clearInterval(interval);
    $(elements).css({background: "rgba("+color+", "+opacity/100+")"});
  }, 30)
};

上記のスクリプトは1黄色のフェードアウトを行うだけであり、要素が更新されたか、または類似の要素であることをユーザーに知らせるのに最適です。

使用法:

flash($('#your-element'))

背景が以前の状態に戻らないことを除いて、この解決策を
気に入ってください

7

これは、この投稿以降多少統合されているため、より最新の回答になる可能性があり、短くなります。jquery-ui-effect-highlightが必要です。

$("div").click(function () {
  $(this).effect("highlight", {}, 3000);
});

http://docs.jquery.com/UI/Effects/Highlight


7

本当に簡単な答えはどうですか?

$('selector').fadeTo('fast',0).fadeTo('fast',1).fadeTo('fast',0).fadeTo('fast',1)

2回点滅します...これで全員です!


それは別の色(要求された)で点滅しません。これは単に不透明度をフェードイン/フェードアウトするだけです。
Tim Eckel 2017

6

これがまだこの質問に含まれていないとは信じられません。あなたがしなければならないすべて:

("#someElement").show('highlight',{color: '#C8FB5E'},'fast');

これは、両方のために働く、超簡単です、あなたはそれが何をしたいのかを正確に行いshow()およびhide()方法。


15
注:これを機能させるには、jquery uiの効果を追加する必要があります。コアjQueryの一部ではありません
travis-146

6

だろう パルス効果(オフライン)jQueryプラグインはあなたが探しているものに適していますか?

時間のパルス効果を制限する期間を追加できます。


JPがコメントで述べたように、彼の 更新されたPulseプラグインがあります
彼のGitHubリポジトリをご覧ください。そして、ここにデモがあります。


更新されたパルスプラグイン:james.padolsey.com/javascript/simple-pulse-plugin-for-jquery
James

デモが壊れているのは、それが参照するjsライブラリが存在しないためです
PandaWood 2012

@PandaWood GitHubリポジトリへのリンクを復元し、デモを更新しました
VonC '27 / 07/27

6
function pulse() {
    $('.blink').fadeIn(300).fadeOut(500);
}
setInterval(pulse, 1000);

1
丁度。フェードインとフェードアウトのシンプルで完全な制御。
pollaris

5

後でこの多くの月が見つかりましたが、誰かが気にかけている場合、これは何かを永続的に点滅させる良い方法のようです:

$( "#someDiv" ).hide();

setInterval(function(){
     $( "#someDiv" ).fadeIn(1000).fadeOut(1000);
},0)

4

次のコードは私のために働きます。2つのフェードインおよびフェードアウト関数を定義し、それらを互いのコールバックに配置します。

var fIn = function() { $(this).fadeIn(300, fOut); };
var fOut = function() { $(this).fadeOut(300, fIn); };
$('#element').fadeOut(300, fIn);

以下は、フラッシュの時間を制御します。

var count = 3;
var fIn = function() { $(this).fadeIn(300, fOut); };
var fOut = function() { if (--count > 0) $(this).fadeOut(300, fIn); };
$('#element').fadeOut(300, fIn);

4

この問題の解決策を探していましたが、jQuery UIに依存していませんでした。

これは私が思いついたものであり、私のために機能します(プラグインなし、JavascriptとjQueryのみ)。-動作するフィドルがここにあります-http ://jsfiddle.net/CriddleCraddle/yYcaY/2/

CSSファイルの現在のCSSパラメーターを通常のcssとして設定し、パラメーターを処理するだけで新しいクラスを作成します。つまり、background-colorを変更し、「!important」に設定してデフォルトの動作を上書きします。このような...

.button_flash {
background-color: #8DABFF !important;
}//This is the color to change to.  

次に、以下の関数を使用して、DOM要素を文字列、フラッシュを発生させる回数の整数、変更するクラス、遅延の整数として渡します。

注: 'times'変数に偶数を渡すと、最初のクラスになり、奇数を渡すと、トグルされたクラスになります。どちらも、さまざまなことに役立ちます。私は「i」を使用して遅延時間を変更します。そうしないと、すべてが同時に発火し、効果が失われます。

function flashIt(element, times, klass, delay){
  for (var i=0; i < times; i++){
    setTimeout(function(){
      $(element).toggleClass(klass);
    }, delay + (300 * i));
  };
};

//Then run the following code with either another delay to delay the original start, or
// without another delay.  I have provided both options below.

//without a start delay just call
flashIt('.info_status button', 10, 'button_flash', 500)

//with a start delay just call
setTimeout(function(){
  flashIt('.info_status button', 10, 'button_flash', 500)
}, 4700);
// Just change the 4700 above to your liking for the start delay.  In this case, 
//I need about five seconds before the flash started.  

3

フェードイン/フェードアウトのように、アニメーションのCSS /遅延を使用できます

$(this).stop(true, true).animate({opacity: 0.1}, 100).delay(100).animate({opacity: 1}, 100).animate({opacity: 0.1}, 100).delay(100).animate({opacity: 1}, 100);

シンプルで柔軟


3
$("#someElement").fadeTo(3000, 0.3 ).fadeTo(3000, 1).fadeTo(3000, 0.3 ).fadeTo(3000, 1); 

3000は3秒

不透明度1から0.3にフェードし、次に1にフェードします。

これらをさらに積み重ねることができます。

jQueryのみが必要です。:)


2

アニメーションの背景バグには回避策があります。この要点には、単純な強調表示方法とその使用例が含まれています。

/* BEGIN jquery color */
  (function(jQuery){jQuery.each(['backgroundColor','borderBottomColor','borderLeftColor','borderRightColor','borderTopColor','color','outlineColor'],function(i,attr){jQuery.fx.step[attr]=function(fx){if(!fx.colorInit){fx.start=getColor(fx.elem,attr);fx.end=getRGB(fx.end);fx.colorInit=true;}
  fx.elem.style[attr]="rgb("+[Math.max(Math.min(parseInt((fx.pos*(fx.end[0]-fx.start[0]))+fx.start[0]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[1]-fx.start[1]))+fx.start[1]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[2]-fx.start[2]))+fx.start[2]),255),0)].join(",")+")";}});function getRGB(color){var result;if(color&&color.constructor==Array&&color.length==3)
  return color;if(result=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
  return[parseInt(result[1]),parseInt(result[2]),parseInt(result[3])];if(result=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
  return[parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55];if(result=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
  return[parseInt(result[1],16),parseInt(result[2],16),parseInt(result[3],16)];if(result=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
  return[parseInt(result[1]+result[1],16),parseInt(result[2]+result[2],16),parseInt(result[3]+result[3],16)];if(result=/rgba\(0, 0, 0, 0\)/.exec(color))
  return colors['transparent'];return colors[jQuery.trim(color).toLowerCase()];}
  function getColor(elem,attr){var color;do{color=jQuery.curCSS(elem,attr);if(color!=''&&color!='transparent'||jQuery.nodeName(elem,"body"))
  break;attr="backgroundColor";}while(elem=elem.parentNode);return getRGB(color);};var colors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};})(jQuery);
  /* END jquery color */


  /* BEGIN highlight */
  jQuery(function() {
    $.fn.highlight = function(options) {
      options = (options) ? options : {start_color:"#ff0",end_color:"#fff",delay:1500};
      $(this).each(function() {
        $(this).stop().css({"background-color":options.start_color}).animate({"background-color":options.end_color},options.delay);
      });
    }
  });
  /* END highlight */

  /* BEGIN highlight example */
  $(".some-elements").highlight();
  /* END highlight example */

https://gist.github.com/1068231


2

ライブラリを含めるのがやり過ぎである場合、ここに機能することが保証されているソリューションがあります。

$('div').click(function() {
    $(this).css('background-color','#FFFFCC');
    setTimeout(function() { $(this).fadeOut('slow').fadeIn('slow'); } , 1000); 
    setTimeout(function() { $(this).css('background-color','#FFFFFF'); } , 1000); 
});
  1. セットアップイベントトリガー

  2. ブロック要素の背景色を設定する

  3. setTimeout内では、fadeOutとfadeInを使用して小さなアニメーション効果を作成します。

  4. 2番目のsetTimeout内でデフォルトの背景色をリセット

    いくつかのブラウザでテストされ、それはうまく動作します。


2

残念ながら、トップの回答にはJQuery UIが必要です。http://api.jquery.com/animate/

これがバニラJQueryソリューションです

http://jsfiddle.net/EfKBg/

JS

var flash = "<div class='flash'></div>";
$(".hello").prepend(flash);
$('.flash').show().fadeOut('slow');

CSS

.flash {
    background-color: yellow;
    display: none;
    position: absolute;
    width: 100%;
    height: 100%;
}

HTML

<div class="hello">Hello World!</div>

flashjQueryオブジェクトを作成するだけであれば、うまく機能します。var flash = $("<div class='flash'></div>"); $(".hello").prepend(flash); flash.show().fadeOut('slow');
マイケルブラックバーン

1

colbeerheyのソリューションのわずかに改善されたバージョンを次に示します。真のjQuery形式で、アニメーションを呼び出した後にイベントをチェーンできるように、returnステートメントを追加しました。キューをクリアしてアニメーションの最後にジャンプするための引数も追加しました。

// Adds a highlight effect
$.fn.animateHighlight = function(highlightColor, duration) {
    var highlightBg = highlightColor || "#FFFF9C";
    var animateMs = duration || 1500;
    this.stop(true,true);
    var originalBg = this.css("backgroundColor");
    return this.css("background-color", highlightBg).animate({backgroundColor: originalBg}, animateMs);
};

注:背景色をアニメーション化するには、colors UIプラグインを使用する必要があります。参照:api.jquery.com/animate
Martlark、

1

これは、マウスオーバーイベントがトリガーされるまで要素の背景色を点滅させます

$.fn.pulseNotify = function(color, duration) {

var This = $(this);
console.log(This);

var pulseColor = color || "#337";
var pulseTime = duration || 3000;
var origBg = This.css("background-color");
var stop = false;

This.bind('mouseover.flashPulse', function() {
    stop = true;
    This.stop();
    This.unbind('mouseover.flashPulse');
    This.css('background-color', origBg);
})

function loop() {
    console.log(This);
    if( !stop ) {
        This.animate({backgroundColor: pulseColor}, pulseTime/3, function(){
            This.animate({backgroundColor: origBg}, (pulseTime/3)*2, 'easeInCirc', loop);
        });
    }
}

loop();

return This;
}

1

これを上記のすべてからまとめます-要素をフラッシュして元のbgcolourに戻す簡単なソリューション...

$.fn.flash = function (highlightColor, duration, iterations) {
    var highlightBg = highlightColor || "#FFFF9C";
    var animateMs = duration || 1500;
    var originalBg = this.css('backgroundColor');
    var flashString = 'this';
    for (var i = 0; i < iterations; i++) {
        flashString = flashString + '.animate({ backgroundColor: highlightBg }, animateMs).animate({ backgroundColor: originalBg }, animateMs)';
    }
    eval(flashString);
}

次のように使用します。

$('<some element>').flash('#ffffc0', 1000, 3);

お役に立てれば!


悪に注意してくださいeval
Birla 14

私は知っている、私は迅速かつ汚い解決策を必要としていました。Evalは時々それを使用します!
ダンカン

1

jQueryとCSS3アニメーションを組み合わせて使用​​するソリューションを次に示します。

http://jsfiddle.net/padfv0u9/2/

基本的に、色を「フラッシュ」色に変更することから始め、次にCSS3アニメーションを使用して色をフェードアウトさせます。最初の「フラッシュ」がフェードよりも速くなるように、トランジション期間を変更する必要があります。

$(element).removeClass("transition-duration-medium");
$(element).addClass("transition-duration-instant");
$(element).addClass("ko-flash");
setTimeout(function () {
    $(element).removeClass("transition-duration-instant");
    $(element).addClass("transition-duration-medium");
    $(element).removeClass("ko-flash");
}, 500);

CSSクラスは次のとおりです。

.ko-flash {
    background-color: yellow;
}
.transition-duration-instant {
    -webkit-transition-duration: 0s;
    -moz-transition-duration: 0s;
    -o-transition-duration: 0s;
    transition-duration: 0s;
}
.transition-duration-medium {
    -webkit-transition-duration: 1s;
    -moz-transition-duration: 1s;
    -o-transition-duration: 1s;
    transition-duration: 1s;
}

1

elem.fadeOut(10).fadeIn(10);を指定するだけです。


1

これは十分に汎用的であり、アニメーション化したいコードを記述できます。遅延を300ミリ秒から33ミリ秒に減らし、色をフェードすることもできます。

// Flash linked to hash.
var hash = location.hash.substr(1);
if (hash) {
    hash = $("#" + hash);
    var color = hash.css("color"), count = 1;
    function hashFade () {
        if (++count < 7) setTimeout(hashFade, 300);
        hash.css("color", count % 2 ? color : "red");
    }
    hashFade();
}

1

jquery Pulsateプラグインを使用すると、速度と繰り返しと色を制御して、任意のhtml要素に注意を集中させることができます。

JQuery.pulsate() *デモあり

サンプル初期化子:

  • $( "。pulse4")。pulsate({speed:2500})
  • $( "。CommandBox button:visible")。pulsate({color: "#f00"、speed:200、Reach:85、repeat:15})
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.