Мигающий текст на JavaScript и jQuery

Для реализации некоторых текстовых эффектов без JavaScript (или, например, jQuery) не обойтись.
Так без них невозможно сделать эффект мигания текста (как отдельных слов так и целых блоков).

Далее пример создания мигающего текста на чистом JavaScript и с использованием jQuery.

Мигающий текст на JavaScript:

<html>
<body  onload="setInterval('blinkIt()',500)">
<script type="text/javascript">
function blinkIt() {
 if (!document.all) return;
 else {
   for(i=0;i<document.all.tags('blink').length;i++){
      s=document.all.tags('blink')[i];
      s.style.visibility=(s.style.visibility=='visible')?'hidden':'visible';
   }
 }
}
</script>
<blink>Мигающий текст</blink>
</body>
</html>

Мигающий текст на jQuery:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>Blinking Text</title>
		<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
		<script type="text/javascript">
		$(function(){
			$("#blinkingText").hide();
			setTimeout(function(){$("#blinkingText").show();setInterval(function(){$("#blinkingText").toggle();},500)},3000);			
		});
		</script>
	</head>
	<body>
<p id="blinkingText">Blinking Text</p>
<p style="position: absolute; top: 50px;"><a href="#">Hide Blinking Text (set display: none)</a></p>
</body>
</html>

Плавно мигающий текст с использованием прозрачности на jQuery:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script>
  $(document).ready(function(){
    $.fn.wait = function(time, type) {
        time = time || 1000;
        type = type || "fx";
        return this.queue(type, function() {
            var self = this;
            setTimeout(function() {
                $(self).dequeue();
            }, time);
        });
    };
    function runIt() {
      $("span").wait()
              .animate({"opacity": 0.1},2000)
              .wait()
              .animate({"opacity": 1},1500,runIt);
    }
    runIt();
  });
  </script>
</head>
<body>
<p>Немигающий текст1, <span>мигающий текст1</span>, не мигащий текст2 <span>мигающий текст2</span>.</p>
</body>
</html>

Комментариев: 19

  • 08.04.2010 Тимур:

    А в Опере первый вариант на Javascript не работает...

    • 09.04.2010 Кирилл:

      Проверил в своей Opera 10.10 ? работает. Может у вас выключен JavaScript в «быстрых настройках» (F12).

      Добавил в пример пару тегов.

  • 17.08.2010 Riter:

    Спасибо. Классная и работающая вещь!

  • 03.02.2011 Валерий:

    Спасибо за код, который искал 2 дня!

    • 01.03.2011 EnCHikiben:

      А как остановить?

      • 09.03.2011 IL82:

        Спасибо! Полезная вещь. Учитывая, что поддерживает, кажется, только FF браузер.

        To EnCHikiben: смотри функцию stop() (jQuery)

        • 09.03.2011 Кирилл:

          Привет IL82, да вроде во всех работает. И кстати зачем вставлять тег blink в коммент? Просто интересно ))

          [UPD] хотя надо будет просто пример в статью вставить

  • 13.02.2011 Siregik:

    Большое спасибо, очень помогло!!!! )))))))

  • 12.04.2011 RD:

    IE8 — не желает работать. Может кто подсказать, как заставить работать 3-й скрипт на этом браузере?

  • 17.08.2011 Александр:

    есть еще такой метод

    text-decoration:blink

  • 21.08.2011 Денис:

    Спасибо большое, с первого раза заработало.

  • 16.09.2011 Алексей:

    Спасибо за код! На днях только начну изучать jquery, a пока хотел спросить как изменить приведенный jquery-код, чтобы при наведении мыши анимация останавливалась, и текст становился «opacity»: 1, а когда курсор уходит — начиналась бы снова. Попробовал сам наковырять с учебниками, но так и не сумел.

  • 26.10.2011 ККК:

    Как заставить работать в Safari? Очень нужен эффект мигания именно для Сафари, будь он неладен!

  • 11.11.2011 Dasha:

    Спасибо!!

    Не очень поняла во втором варианте Hide Blinking Text (set display: none)

    И еще во втором варианте лучше поместить мигающий текст в div c фиксированной высотой, чтобы текст под мигалкой не скакал.


Добавление комментария:

 css.php