テキストが点滅するjQuery


回答:


51

この点滅プラグインを使用してみてください

例えば

$('.blink').blink(); // default is 500ms blink interval.
//$('.blink').blink(100); // causes a 100ms blink interval.

これは非常に単純なプラグインでもあり、アニメーションを停止してオンデマンドで開始するように拡張することができます。


1
blink-tagを使用して、ブラウザーがIEであるかどうかをjQueryで確認し、そうでない場合はこのプラグインで点滅します。
Natrium

11
それは価値があるよりも多くの努力ですよね?
barkmadley

1
barkmadley、点滅を停止する方法を教えてください。
HP。

93

一部のテキストを点滅させるプラグインは、私にはやり過ぎのように聞こえます...

これを試して...

$('.blink').each(function() {
    var elem = $(this);
    setInterval(function() {
        if (elem.css('visibility') == 'hidden') {
            elem.css('visibility', 'visible');
        } else {
            elem.css('visibility', 'hidden');
        }    
    }, 500);
});

12
アレックス、21世紀に瞬目タグを導入していただきありがとうございます。私の90年代のパロディウェブサイトはすべて、醜い小さな心の底から感謝します:)
Casey Rodarmor

1
@alex、ここで別のトピックに関するjqueryの質問を確認するようにお願いできますか:stackoverflow.com/questions/13137404/…
Istiaque Ahmed 2012

2
これを(コードで)どのように使用しますか?-おそらく馬鹿げた質問で申し訳ありません。
TheSteven

2
@TheStevenこの例では、クラスがの要素にblinkこれが適用されます。したがって、次のようなものを<span class="blink">Blinky Bill</span>用意し、DOMの準備ができたら、このコードを実行します。
アレックス

39

アニメーションで点滅しています:

$(".blink").animate({opacity:0},200,"linear",function(){
  $(this).animate({opacity:1},200);
});

まばたきしたいものは何でもまばたきクラスを与えるだけです:

<div class="someclass blink">some text</div>

#jqueryのDannyZBに関するすべての考慮事項

特徴:

  • プラグインは必要ありません(ただしJQuery自体)
  • 事をします

ええ、私は投稿後にそれを理解しました)簡単に修正されました
nir0

これは、任意のプラグインや凝っなしでいいです
ピーターT.

13

jQueryを使用しない場合は、CSS3を使用してこれを実現できます。

@-webkit-keyframes blink {  
  from { opacity: 1.0; }
  to { opacity: 0.0; }
}

blink {
  -webkit-animation-name: blink;  
  -webkit-animation-iteration-count: infinite;  
  -webkit-animation-timing-function: cubic-bezier(1.0,0,0,1.0);
  -webkit-animation-duration: 1s; 
}

Chromeで動作しているようですが、少しすすり泣くような音がしました。


9

上記のコードを組み合わせると、これは良い解決策だと思います。

function blink(selector){
    $(selector).animate({opacity:0}, 50, "linear", function(){
        $(this).delay(800);
        $(this).animate({opacity:1}, 50, function(){
        blink(this);
        });
        $(this).delay(800);
    });
}

少なくともそれは私のウェブ上で動作します。 http://140.138.168.123/2y78%202782


これは、非表示またはトグルまたはフェードを使用するソリューションとは異なり、ユーザーが「オフ」サイクル中に点滅している要素をクリックすることを引き続き許可するという点で良い答えです。上記のHermann Ingjaldssonの回答も参照してください。
cssyphus 2013

fadeIn()そしてfadeOut()あなたのためにそれをしませんでしたか?
アレックス

8

こちらが私のものです。重要な3つのパラメーターを制御できます。

  • フェードイン速度
  • フェードアウト速度
  • リピート速度

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

jQueryチェーニングはここで素晴らしいでしょう
アレックス

これにより、レイアウトを
めちゃくちゃに

@alexとFull Decentはどちらも正しい :)
yPhil

6

標準のCSS方法を使用することもできます(JQueryプラグインは不要ですが、すべてのブラウザーと互換性があります)。

// Start blinking
$(".myblink").css("text-decoration", "blink");

// Stop blinking
$(".myblink").css("text-decoration", "none");

W3Cリンク


14
ChromeとSafariには対応していません。
Lennart Koopmann、2010年

IE9とも互換性がありません。
johndodo '13年

5

これらを試すこともできます:

<div>some <span class="blink">text</span> are <span class="blink">blinking</span></div>
<button onclick="startBlink()">blink</button>
<button onclick="stopBlink()">no blink</button>

<script>
  function startBlink(){
    window.blinker = setInterval(function(){
        if(window.blink){
           $('.blink').css('color','blue');
           window.blink=false;
         }
        else{
            $('.blink').css('color','white');
            window.blink = true;
        }
    },500);
  }

  function stopBlink(){
    if(window.blinker) clearInterval(window.blinker);
  } 
</script>

4
この例では、グローバルネームスペースを不必要に汚染しています。
アレックス

5

これが最も簡単な方法です(コーディングは最小限です):

setInterval(function() {
    $( ".blink" ).fadeToggle();
}, 500);

フィドル

さて、もっと洗練されたものを探しているなら...

//Blink settings
var blink = {
    obj: $(".blink"),
    timeout: 15000,
    speed: 1000
};

//Start function
blink.fn = setInterval(function () {
    blink.obj.fadeToggle(blink.speed);
}, blink.speed + 1);

//Ends blinking, after 'blink.timeout' millisecons
setTimeout(function () {
    clearInterval(blink.fn);
    //Ensure that the element is always visible
    blink.obj.fadeIn(blink.speed);
    blink = null;
}, blink.timeout);

フィドル


4
$.fn.blink = function(times, duration) {
    times = times || 2;
    while (times--) {
        this.fadeTo(duration, 0).fadeTo(duration, 1);
    }
    return this;
};

絶対に素晴らしい!を使用するとsetInterval(function ())、いくつかの問題が発生する可能性があります(バブリング、停止、「オン」状態の維持など)。どうもありがとうございました。
ペドロフェレイラ2014年

3

ここでは、クイックデモを備えたjQuery blinkプラグインを見つけることができます。

基本的な点滅(無制限の点滅、点滅周期〜1秒):

$('selector').blink();

より高度な使用法では、任意の設定を上書きできます。

$('selector').blink({
    maxBlinks: 60, 
    blinkPeriod: 1000,   // in milliseconds
    onBlink: function(){}, 
    onMaxBlinks: function(){}
});

あなたはそこ点滅の最大数を指定するだけでなく、コールバックのカップルへのアクセス権を持つことができますonBlinkし、onMaxBlinksそれはかなり自明です。

IE 7および8、Chrome、Firefox、Safari、およびおそらくIE 6とOperaで動作します(ただし、それらでテストされていません)。

(完全な開示:私はこの前のものの作成者です。私たちは仕事でそれを使用する正当な必要性がありました[ 私たちは皆これを言いたいのはわかっています:-) ]システム内のアラームのために、私は共有することを考えました正当な必要性がある場合にのみ使用してください;-))。

jQuery blinkプラグインの別のリストを次に示します


3

このコードは私にとってはうまくいきます

   $(document).ready(function () {
        setInterval(function(){
            $(".blink").fadeOut(function () {
                $(this).fadeIn();
            });
        } ,100)
    });

2

jQuery UI Pulsate効果を試すことができます。

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


1
人々がなぜ「脈動」が利用可能でそのような長さ(カスタムコーディング)に行くのか私にはわかりません。
ジェフズ2012年

@Jeffz数行で達成できる1つの小さな効果のためにページにjQuery UIを望まない人々。
アレックス

@アレックスあなたは正しいです。2012年以来、点滅のようなものが必要でjQuery UIが選択肢ではなかった多くのサイトに出くわしました。
ジェフズ2016年

2

最も簡単な方法:

$(".element").fadeTo(250, 0).fadeTo(250,1).fadeTo(250,0).fadeTo(250,1);

これを好きなだけ繰り返すか、ループ内で使用できます。fadeTo()の最初のパラメーターはフェードが有効になる期間であり、2番目のパラメーターは不透明度です。


1
$(".myblink").css("text-decoration", "blink");

IE 7とSafariでは機能しません。Firefoxでうまく機能する


1

このスタンドアロンソリューションは、テキストを指定された回数点滅させてから停止します。

点滅は、表示/非表示、フェード、またはトグルではなく、不透明度を使用するため、問題が発生した場合に備えて、DIVはクリック可能なままになります(点滅するテキストでボタンを作成できます)。

ここにjsFiddle(追加のコメントが含まれています)

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

        <script type="text/javascript">
            $(document).ready(function() {

                var init = 0;

                $('#clignotant').click(function() {
                    if (init==0) {
                        init++;
                        blink(this, 800, 4);
                    }else{
                        alert('Not document.load, so process the click event');
                    }
                });

                function blink(selector, blink_speed, iterations, counter){
                    counter = counter | 0;
                    $(selector).animate({opacity:0}, 50, "linear", function(){
                        $(this).delay(blink_speed);
                        $(this).animate({opacity:1}, 50, function(){

                            counter++;

                            if (iterations == -1) {
                                blink(this, blink_speed, iterations, counter);
                            }else if (counter >= iterations) {
                                return false;
                            }else{
                                blink(this, blink_speed, iterations, counter);
                            }
                        });
                        $(this).delay(blink_speed);
                    });
                }

                //This line must come *AFTER* the $('#clignotant').click() function !!
                window.load($('#clignotant').trigger('click'));


            }); //END $(document).ready()

        </script>
    </head>
<body>

    <div id="clignotant" style="background-color:#FF6666;width:500px;
    height:100px;text-align:center;">
        <br>
        Usage: blink(selector, blink_speed, iterations) <br />
        <span style="font-weight:bold;color:blue;">if iterations == -1 blink forever</span><br />
        Note: fn call intentionally missing 4th param
    </div>


</body>
</html>

出典:
Danny Gimenez
Moses Christian


1

著者へのリンク

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.1.min.js"></script>

<div id="msg"> <strong><font color="red">Awesome Gallery By Anil Labs</font></strong></p> </div>

<script type="text/javascript" >
function blink(selector){
    $(selector).fadeOut('slow', function(){
        $(this).fadeIn('slow', function(){
            blink(this);
        });
    });
}

blink('#msg');
</script>

1

私はsteps-timedポリフィルを投稿するつもりでしたが、その後、この効果を見たくなかったので、…

function blink(element, interval) {
    var visible = true;

    setInterval(function() {
        visible = !visible;
        element.style.visibility = visible ? "visible" : "hidden";
    }, interval || 1000);
}

1

以下は他の回答よりも明確でカスタマイズされていると思います。

    var element_to_blink=$('#id_of_element_to_blink');
    var min_opacity=0.2;
    var max_opacity=1.0;
    var blink_duration=2000;
    var blink_quantity=10;
    var current_blink_number=0;

    while(current_blink_number<blink_quantity){
        element_to_blink.animate({opacity:min_opacity},(blink_duration/2),"linear");
        element_to_blink.animate({opacity:max_opacity},(blink_duration/2),"linear");
        current_blink_number+=1;
        }

1
これは、非表示またはトグルまたはフェードを使用するソリューションとは異なり、ユーザーが「オフ」サイクル中に点滅している要素をクリックすることを引き続き許可するという点で良い答えです。以下のモーゼ・クリスチャンの回答も参照してください。
cssyphus 2013

1
1. varの最初のグループはグローバルです2. varは誤解を招き、element_idセレクターを指しています。3.同じエレメントを繰り返し選択します
アレックス

フィードバックをありがとう、私はそれらのポイントを通過し、それらを修正しました。
Fzs2 2015年

1

このコードは、不透明度に作用するだけで、レイアウトに触れることなく(そうするように)要素を効果的に点滅さfadeIn().fadeOut()ます。テキストが点滅します。善にも悪にも使える:)

setInterval(function() {
  $('.blink').animate({ opacity: 1 }, 400).animate({ opacity: 0 }, 600);
}, 800);

0

点滅!

var counter = 5; // Blinking the link 5 times
var $help = $('div.help');
var blinkHelp = function() {
    ($help.is(':visible') ? $help.fadeOut(250) : $help.fadeIn(250));    
    counter--;
    if (counter >= 0) setTimeout(blinkHelp, 500);
};
blinkHelp();

0

このコードは、このトピックに役立つ場合があります。シンプルでありながら便利です。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        setInterval("$('#myID/.myClass').toggle();",500);
    });
</script>

1
これにより、不可視の問題の要素が削除され、最終的にページの構造が損なわれる可能性があります。
ramblinjan 2012年

0

私はアレックスの答えが好きなので、これは間隔なしの拡張です(最終的にその間隔をクリアし、ボタンの点滅を停止するタイミングを知る必要があるため)。これはjquery要素で渡すソリューションです、点滅オフセットに必要なms、および要素を点滅させたい回数:

function blink ($element, ms, times) {
    for (var i = 0; i < times; i++) {
        window.setTimeout(function () {
            if ($element.is(':visible')) {
                $element.hide();
            } else {
                $element.show();
            }
        }, ms * (times + 1));
    }
}

0

これらの回答のいくつかは非常に複雑ですが、これは少し簡単です:

$.fn.blink = function(time) {
    var time = typeof time == 'undefined' ? 200 : time;
    this.hide(0).delay(time).show(0);
}

$('#msg').blink();

0

この質問に対するビューの数と、点滅と停止の両方をカバーする回答の欠如を見てみましょう。jQuery.blinkeroutdemo)を試してください。

HTML:

<p>Hello there!</p>

JavaScript:

var p = $("p");

p.blinker();

p.bind({
    // pause blinking on mouseenter
    mouseenter: function(){
        $(this).data("blinker").pause();
    },
    // resume blinking on mouseleave
    mouseleave: function(){
        $(this).data("blinker").blinkagain();
    }
});

0

実際、単純な点滅効果のプラグインはやりすぎです。したがって、さまざまなソリューションを試した後、JavaScriptの1行と、要素を点滅させる方法を正確に制御するCSSクラスを選択しました(点滅が機能するためには、背景を透明に変更するだけで十分です。テキストは引き続き表示されます):

JS:

$(document).ready(function () {
        setInterval(function () { $(".blink").toggleClass("no-bg"); }, 1000);
    });

CSS:

span.no-bg {
    background-color: transparent;
}

このjsフィドルでの完全な例。


0

点滅機能はプレーンなJavaScriptで実装できます。jqueryプラグインやjqueryは必要ありません。

これはで動作するすべてのブラウザ、それは基本的な機能を使用しているとして、

これがコードです

HTML:

<p id="blinkThis">This will blink</p>

JSコード:

var ele = document.getElementById('blinkThis');
setInterval(function () {
    ele.style.display = (ele.style.display == 'block' ? 'none' : 'block');
}, 500);

そして働くフィドル


0

これが最終的に私にとって最も効果的なものでした。これはすでにjQueryをリンクしているWordPressにあるため、jQuery fadeToを使用しました。それ以外の場合は、プラグインに別のhttpリクエストを追加する前に、純粋なJavaScriptで何かを選択したでしょう。

$(document).ready(function() {
    // One "blink" takes 1.5s
    setInterval(function(){
        // Immediately fade to opacity: 0 in 0ms
        $(".cursor").fadeTo( 0, 0);
        // Wait .75sec then fade to opacity: 1 in 0ms
        setTimeout(function(){
            $(".cursor").fadeTo( 0, 1);
        }, 750);
    }, 1500);
});

0

テキストを点滅させる回数を指定しながら、テキストを点滅させるための簡単なjquery拡張機能を作成しました。それが他のユーザーに役立つことを願っています。

//add Blink function to jquery 
jQuery.fn.extend({
    Blink: function (i) {
        var c = i; if (i===-1 || c-- > 0) $(this).fadeTo("slow", 0.1, function () { $(this).fadeTo("slow", 1, function () { $(this).Blink(c);  }); });
    }
});
//Use it like this
$(".mytext").Blink(2); //Where 2 denotes number of time it should blink.
//For continuous blink use -1 
$(".mytext").Blink(-1);

0

ボタンのクリックで点滅する開始と停止 -

<input type="button" id="btnclick" value="click" />
var intervalA;
        var intervalB;

        $(document).ready(function () {

            $('#btnclick').click(function () {
                blinkFont();

                setTimeout(function () {
                    clearInterval(intervalA);
                    clearInterval(intervalB);
                }, 5000);
            });
        });

        function blinkFont() {
            document.getElementById("blink").style.color = "red"
            document.getElementById("blink").style.background = "black"
            intervalA = setTimeout("blinkFont()", 500);
        }

        function setblinkFont() {
            document.getElementById("blink").style.color = "black"
            document.getElementById("blink").style.background = "red"
            intervalB = setTimeout("blinkFont()", 500);
        }

    </script>

    <div id="blink" class="live-chat">
        <span>This is blinking text and background</span>
    </div>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.