Код JavaScript, который может позволить тексту в браузере мигать один раз - PullRequest
0 голосов
/ 26 апреля 2010

У меня есть оконное приложение, и на нем есть один элемент управления веб-браузера, и я хочу, чтобы текст на веб-браузере мигал один раз, а затем не должен мигать больше, возможно ли это?

Я сделал с одним JavaScript, но он часто мигает текст, но я хочу, чтобы текст мигал только один раз или максимум два раза. Java-скрипт:

<html><body onload=\"setInterval('blinkIt()',600)\"><br><br><b style ='color:Red;'><blink>" + "Please Follow Above Instruction To Continue Tour" + "</blink>" +
                                       "<script type=\"text/javascript\">" +
                                       "function blinkIt() {" +
                                       "var j=0;j++;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';if(j==4)break;" +
                                       "}}}</script>" + "</body></html>

Ответы [ 4 ]

3 голосов
/ 26 апреля 2010

Тег <blink> мигает многократно, независимо от JavaScript. Вот для чего это было изобретено, и поэтому все ненавидят это. Это давно устарело и никогда не должно было существовать. Избегайте, наряду с <br> -бусом, встроенных стилей, передачи строки в setInterval и всех упоминаний о сломанном IE 100 * *

<head>
    <style type="text/css">
        #blinkme { color: red; font-weight: bold; }
    </style>
</head>
<body>
    <p id="blinkme">Please Follow Above Instruction To Continue Tour</p>
    <script type="text/javascript">

        function Blinker(element, blinkn, period) {
            var blinki= 0;
            var interval= setInterval(function() {
                blinki++;
                if (blinki>=blinkn)
                    clearInterval(interval);
                element.style.visibility= 'hidden';
                setTimeout(function() {
                    element.style.visibility= 'visible';
                }, period/2);
            }, period);
        }

        Blinker(document.getElementById('blinkme'), 2, 1000);

    </script>
</body>
0 голосов
/ 26 апреля 2010

Конечно, вам не нужно использовать jQuery, но вот пример:

var blink = function(element, duration, delay) {
    duration = duration || 1000;
    delay    = delay    || 0;

    setTimeout(function() {
        // Hide the element after `delay` ms
        element.css("visibility", "hidden");
        setTimeout(function() {
            // Show the element again after `duration` ms
            element.css("visibility", "visible");
        }, duration);
    }, delay);
};

// Initiate blink after document loads.
$(function() {
    blink($("#id-of-some-element"), 1000, 1000);
});
0 голосов
/ 26 апреля 2010
<div id="blinkin">My Blinkin' Message</div>

... затем у подножия тела

 <script>
  setTimeout(function() {
    document.getElementById('blinkin').style.color = 'transparent'; // or 'white' for IE as @bobince notes?
  }, 600);
  setTimeout(function() {
    document.getElementById('blinkin').style.color = '';
  }, 1600);
 </script>

Очевидно, что, как отмечает @ Джастин-Джонсон, использование библиотеки делает это проще.

На самом деле, более "стандартный" способ привлечения внимания к элементу был бы, возможно:

$('blinkin').animate({backgroundColor: '#ffff99'}, 1000).animate({backgroundColor: '#ffffff'}, 2000);

(jQuery, похоже, не имеет эффекта highlight прототипа, это предположение о том, что это будет.)

0 голосов
/ 26 апреля 2010

Да, вам нужно взглянуть на функцию window.setTimeout () https://developer.mozilla.org/en/DOM/window.setTimeout

Это позволит вам выполнить функцию JavaScript один раз после указанной задержки.

Существует альтернативная функция https://developer.mozilla.org/en/DOM/window.setInterval, которая будет повторять выполнение снова и снова. Это может быть бесполезно для вас.

Вам придется использовать DOM, чтобы изменить цвет фона окна, но это тривиальное упражнение для поиска.

...