文本闪烁jQuery


Answers:


51

尝试使用此眨眼插件

例如

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

这也是一个非常简单的插件,您可以扩展它以停止动画并按需启动它。


1
我会使用blink-tag,并使用jQuery检查浏览器是否为IE,如果不是,则使用此插件进行闪烁。
Natrium,2009年

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
亚历克斯(Alex),感谢您将眨眼标记带入21世纪,我所有90年代的模仿网站都从其丑陋的小小的心底感谢您:)
Casey Rodarmor 2012年

1
@alex,我可以请您在这里查看另一个主题的jquery问题:stackoverflow.com/questions/13137404 / ...吗?
伊斯蒂西亚·艾哈迈德

2
您将如何使用此代码(在代码中)?-很抱歉,这可能是一个愚蠢的问题。
TheSteven

2
@TheSteven在此示例中,任何具有类的元素都blink将应用于此。因此,您将拥有类似的东西<span class="blink">Blinky Bill</span>,然后在DOM准备就绪或类似之后,运行此代码。
Alex

39

这是动画闪烁的:

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

只要您想眨眨眼就给眨眼课:

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

所有关于#jquery上的DannyZB的问候

特征:

  • 不需要任何插件(但JQuery本身)
  • 做事情

是的,我发现发布后很容易解决)
nir0

这很不错,没有任何插件或花哨的东西
Peter 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

fadeIn()fadeOut()没有为你做吗?
Alex

8

这是我的;它使您可以控制重要的3个参数:

  • 速度下降
  • 淡出速度
  • 重复速度

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

jQuery链在这里会很棒
Alex

这使其在眨眼之间消失,从而使布局混乱
William Entriken

@alex和Full Decent你都是对的 :)
yPhil


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
该示例不必要地污染了全局名称空间。
alex 2012年

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 ())可能带来一些问题(冒泡,停止,保持打开状态等),非常感谢!
Pedro Ferreira 2014年

3

在这里,您可以找到带有快速演示jQuery眨眼插件。

基本闪烁(无限闪烁,闪烁时间〜1秒):

$('selector').blink();

在更高级的用法上,您可以覆盖以下任何设置:

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

在那里,你可以指定闪烁的最大数量,以及有机会获得一对夫妇的回调:onBlinkonMaxBlinks那是相当自我解释。

可以在IE 7和8,Chrome,Firefox,Safari和IE 6和Opera中运行(尽管尚未对其进行测试)。

(完全公开:我是上一个的创建者。我们有合理的需要在工作中使用它[ 我知道我们都喜欢这样说:-) ]用于系统内的警报,我想共享用于合法需要;-))。

这是jQuery眨眼插件的另一个列表。


3

该代码对我有用

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


2

最简单的方法:

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

您可以根据需要重复任意多次,也可以在循环中使用它。fadeTo()的第一个参数是渐变生效的持续时间,第二个参数是不透明度。


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>

资料来源:
丹尼·吉梅内斯·
摩西·克里斯蒂安


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的polyfill,但是后来我想起我真的不想看到这种效果,所以…

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
这是一个很好的答案,因为它仍然允许用户在“关闭”周期中单击闪烁的元素,这与使用隐藏,切换或淡入淡出的解决方案不同。另请参见下面的摩西·克里斯蒂安(Moses Christian)的答案。
cssyphus

1
1.您的第一批var是全局的2.您的var具有误导性,element_id指向一个选择器3.您一次又一次地选择相同的元素
alex 2015年

感谢您的反馈,我已仔细研究并修正了这些问题。
Fzs2

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

我喜欢alex的答案,所以这是对它的扩展,没有间隔(因为您最终需要清除该间隔并知道何时希望按钮停止闪烁。这是在jquery元素中传递的解决方案,您希望闪烁偏移量的毫秒数以及您希望元素闪烁的次数:

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

0

确实,一个简单的眨眼效果插件太过分了。因此,在尝试了各种解决方案之后,我在一行javascript和一个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 fadeTo,因为它是在WordPress上的,已经将jQuery链接了。否则,在添加另一个针对插件的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>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.