Text blinking jQuery

JavascriptJqueryHtmlCss

Javascript Problem Overview


What is an easy way to make text blinking in jQuery and a way to stop it? Must work for IE, FF and Chrome. Thanks

Javascript Solutions


Solution 1 - Javascript

A plugin to blink some text sounds a bit like overkill to me...

Try this...

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

Solution 2 - Javascript

Try using this blink plugin

For Example

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

It is also a very simple plugin, and you could probably extend it to stop the animation and start it on demand.

Solution 3 - Javascript

here's blinking with animation:

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

just give a blink class whatever u want to blink:

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

all regards to DannyZB on #jquery

features:

  • doesn't need any plugins (but JQuery itself)
  • does the thing

Solution 4 - Javascript

If you'd rather not use jQuery, this can be achieved with 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; 
}

Seems to work in Chrome, though I thought I heard a slight sobbing noise.

Solution 5 - Javascript

Combine the codes above, I think this is a good solution.

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

At least it works on my web. http://140.138.168.123/2y78%202782

Solution 6 - Javascript

Here's mine ; it gives you control over the 3 parameters that matter:

  • the fade in speed
  • the fade out speed
  • the repeat speed

.

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

Solution 7 - Javascript

You can also use the standard CSS way (no need for JQuery plugin, but compatible with all browsers):

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

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

W3C Link

Solution 8 - Javascript

This is the EASIEST way (and with the least coding):

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

Fiddle

Now, if you are looking for something more sophisticated...

//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);

Fiddle

Solution 9 - Javascript

You can also try these:

<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>

Solution 10 - Javascript

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

Solution 11 - Javascript

Here you can find a jQuery blink plugin with its quick demo.

Basic blinking (unlimited blinking, blink period ~1 sec):

$('selector').blink();

On a more advanced usage, you can override any of the settings:

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

There you can specify the max number of blinks as well as have access to a couple of callbacks: onBlink and onMaxBlinks that are pretty self explanatory.

Works in IE 7 & 8, Chrome, Firefox, Safari and probably in IE 6 and Opera (although haven't tested on them).

(In full disclosure: I'm am the creator of this previous one. We had the legitimate need to use it at work [I know we all like to say this :-)] for an alarm within a system and I thought of sharing only for use on a legitimate need ;-)).

Here is another list of jQuery blink plugins.

Solution 12 - Javascript

this code is work for me

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

Solution 13 - Javascript

You can try the jQuery UI Pulsate effect:

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

Solution 14 - Javascript

Easiest way:

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

You can repeat this as much as you want or you can use it inside a loop. the first parameter of the fadeTo() is the duration for the fade to take effect, and the second parameter is the opacity.

Solution 15 - Javascript

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

do not work with IE 7 & Safari. Work well with Firefox

Solution 16 - Javascript

Link to author

<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>

Solution 17 - Javascript

I feel the following is of greater clarity and customization than other answers.

    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;
        }

Solution 18 - Javascript

This stand-alone solution will blink the text a specified number of times and then stop.

The blinking uses opacity, rather than show/hide, fade or toggle so that the DIV remains clickable, in case that's ever an issue (allows you to make buttons with blinking text).

jsFiddle here (contains additional comments)

<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>

Sources:
Danny Gimenez
Moses Christian

Solution 19 - Javascript

I was going to post the steps-timed polyfill, but then I remembered that I really don’t want to ever see this effect, so…

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

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

Solution 20 - Javascript

This code will effectively make the element(s) blink without touching the layout (like fadeIn().fadeOut() will do) by just acting on the opacity ; There you go, blinking text ; usable for both good and evil :)

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

Solution 21 - Javascript

Blinking !

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();

Solution 22 - Javascript

This code might help to this topic. Simple, yet useful.

<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>

Solution 23 - Javascript

Some of these answers are quite complicated, this is a bit easier:

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

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

Solution 24 - Javascript

I like alex's answer, so this is a bit of an extension of that without an interval (since you would need to clear that interval eventually and know when you want a button to stop blinking. This is a solution where you pass in the jquery element, the ms you want for the blinking offset and the number of times you want the element to blink:

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));
    }
}

Solution 25 - Javascript

Seeing the number of views on this question, and the lack of answers that cover both blinking and stopping it, here goes: try jQuery.blinker out (demo).

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();
	}
});

Solution 26 - Javascript

Indeed a plugin for a simple blink effect is overkill. So after experimenting with various solutions, I have choosen between one line of javascript and a CSS class that controls exactly how I want to blink the elements (in my case for the blink to work I only need to change the background to transparent, so that the text is still visible):

JS:

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

CSS:

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

Full example at this js fiddle.

Solution 27 - Javascript

Blink functionality can be implemented by plain javascript, no requirement for jquery plugin or even jquery.

This will work in all the browsers, as it is using the basic functionality

Here is the code

HTML:

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

JS Code:

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

and a working fiddle

Solution 28 - Javascript

This is what ended up working best for me. I used jQuery fadeTo because this is on WordPress, which already links jQuery in. Otherwise, I probably would have opted for something with pure JavaScript before adding another http request for a plugin.

$(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);
});

Solution 29 - Javascript

I have written a simple jquery extension for text blink whilst specifying number of times it should blink the text, Hope it helps others.

//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);

Solution 30 - Javascript

Text Blinking start and stop on button click -

<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>

Solution 31 - Javascript

result

$('.blink').fadeIn('fast')
    .animate({
        color: "#FFCD56"
    }, 100).animate({
        color: "white"
    }, 100)
    .animate({
        color: "#FFCD56"
    }, 100).animate({
        color: "white"
    }, 100)
    .animate({
        color: "#FFCD56"
    }, 100).animate({
        color: "white"
    }, 100)
    .animate({
        color: "#FFCD56"
    }, 100).animate({
        color: "white"
    }, 100)
    .animate({
        color: "#FFCD56"
    }, 100).animate({
        color: "white"
    }, 100);

Solution 32 - Javascript

Try this :

setInterval( function() { $(".me").fadeOut(500).fadeIn(500) } , 500);

Solution 33 - Javascript

One more made from the core jQuery functionality(it could be better):

function blink( el ) {
    if (!el) {
        el = this
    }
    
    $(el).animate( { opacity: 0.5 },1200, function() {
        $(this).animate( {opacity: 1 }, 1200, blink );
    } );
}

You can tweak the animation opacity change(0.5- 1) and delay(1200) to get a better "blink". This one is less annoying than the blink of the 90es :-)

Solution 34 - Javascript

$.fn.blink = function (delay) {
  delay = delay || 500;
  return this.each(function () {
    var element = $(this);
    var interval = setInterval(function () {
      element.fadeOut((delay / 3), function() {
        element.fadeIn(delay / 3);
      })
    }, delay);
    element.data('blinkInterval', interval);
  });
};

$.fn.stopBlinking = function() {
  return this.each(function() {
    var element = $(this);
    element.stop(true, true);
    clearInterval(element.data('blinkInterval'));
  });
};

Solution 35 - Javascript

based on alex idea

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

$.fn.blink = function(options) {	
	options = $.extend({}, {'speed' : 800}, options);

	var elem = this;
	setInterval(function() {
		if (!elem.is(':visible')) {
			elem.show();
		} else {
			elem.hide();
		}    
	}, options.speed);		
}   

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionHP.View Question on Stackoverflow
Solution 1 - JavascriptalexView Answer on Stackoverflow
Solution 2 - JavascriptbarkmadleyView Answer on Stackoverflow
Solution 3 - Javascriptnir0View Answer on Stackoverflow
Solution 4 - JavascriptJesse HattabaughView Answer on Stackoverflow
Solution 5 - JavascriptMosesView Answer on Stackoverflow
Solution 6 - JavascriptyPhilView Answer on Stackoverflow
Solution 7 - JavascriptLastnicoView Answer on Stackoverflow
Solution 8 - JavascriptOmarView Answer on Stackoverflow
Solution 9 - JavascriptjerjerView Answer on Stackoverflow
Solution 10 - JavascriptyckartView Answer on Stackoverflow
Solution 11 - JavascriptfcarriedoView Answer on Stackoverflow
Solution 12 - JavascriptmehdiView Answer on Stackoverflow
Solution 13 - JavascriptLeniel MaccaferriView Answer on Stackoverflow
Solution 14 - JavascriptDarushView Answer on Stackoverflow
Solution 15 - JavascriptjvmView Answer on Stackoverflow
Solution 16 - Javascriptrd42View Answer on Stackoverflow
Solution 17 - Javascriptjohn-jonesView Answer on Stackoverflow
Solution 18 - JavascriptcssyphusView Answer on Stackoverflow
Solution 19 - JavascriptRy-View Answer on Stackoverflow
Solution 20 - JavascriptyPhilView Answer on Stackoverflow
Solution 21 - JavascriptmlklcView Answer on Stackoverflow
Solution 22 - JavascriptJamer GereroView Answer on Stackoverflow
Solution 23 - JavascriptAram KocharyanView Answer on Stackoverflow
Solution 24 - JavascriptVinayView Answer on Stackoverflow
Solution 25 - Javascriptuser1728278View Answer on Stackoverflow
Solution 26 - JavascriptLucianView Answer on Stackoverflow
Solution 27 - JavascriptV31View Answer on Stackoverflow
Solution 28 - JavascriptTom HollandView Answer on Stackoverflow
Solution 29 - JavascriptRohit PatelView Answer on Stackoverflow
Solution 30 - JavascriptJohnnyView Answer on Stackoverflow
Solution 31 - Javascriptcode-8View Answer on Stackoverflow
Solution 32 - JavascriptMahetabView Answer on Stackoverflow
Solution 33 - JavascriptMaya Kathrine AndersenView Answer on Stackoverflow
Solution 34 - JavascriptSzymon WygnańskiView Answer on Stackoverflow
Solution 35 - JavascriptebenView Answer on Stackoverflow