我怎么能用jQuery闪烁?

时间:2010-07-29 10:33:21

标签: jquery blink

我想闪烁我的菜单文字。我有这个代码,但它不适用于IE。

(function($)
{
    $.fn.blink = function(options) {
        var defaults = { delay:500 };
        var options = $.extend(defaults, options);

        return this.each(function() {
            var obj = $(this);
            setInterval(function() {
                if($(obj).css("color") == "rgb(255, 0, 0)")
                {
                    $(obj).css('color','#000000');
                }
                else
                {
                    $(obj).css('color','rgb(255, 0, 0)');
                }
            }, options.delay);
        });
    }
}(jQuery))

$(document).ready(function(){$('.blink').blink()})

有人能帮助我吗?谢谢!

4 个答案:

答案 0 :(得分:5)

Mini-Effects plug-ins在这里应该更简单 - 如果你需要从UI效果库(除了那些其他必需品,“悸动”,“摇晃”和“鲍勃”之外的话,非常小且明显有效) )。

使用简单 - 只需加载您需要的迷你效果插件,然后只需要在要闪烁的元素上调用blink()即可。

<script type="text/javascript" charset="utf-8" src="javascripts/jquery.blink.min.js"></script>

然后,只需在一些颜色鲜艳的资源上调用blink():

$(".selector").blink();

答案 1 :(得分:2)

你将obj设置为$(this),所以你必须每次都调用obj而不是$(obj)。

只需替换

obj = $(this);

只需

obj = this;

但仍然想到有癫痫,视力不好等的人。

答案 2 :(得分:1)

在资源管理器中:

if($(obj).css("color") == "rgb(255, 0, 0)")

不是真的,因为IE看到了这个:

 $(obj).css("color") == "rgb(255,0,0)";

数字之间没有空格。

您可以通过更改:

来解决此问题
$(obj).css('color','rgb(255, 0, 0)');

$(obj).css('color','rgb(255,0,0)');

if($(obj).css("color") == "rgb(255, 0, 0)")

if($(obj).css("color") == "rgb(255,0,0)")

这样:

(function($)
{
    $.fn.blink = function(options) {
        var defaults = { delay:500 };
        var options = $.extend(defaults, options);

        return this.each(function() {
            var obj = $(this);
            setInterval(function() {
                if($(obj).css("color") == "rgb(255,0,0)")
                {
                    $(obj).css('color','#000000');
                }
                else
                {
                    $(obj).css('color','rgb(255,0,0)');
                }
            }, options.delay);
        });
    }
}(jQuery))
$(document).ready(function(){$('.blink').blink()})

编辑:

            (function($)
{
    $.fn.blink = function(options) {
        var defaults = { delay:500 };
        var options = $.extend(defaults, options);

        return this.each(function() {
            var obj = $(this);
            var state = false;
            setInterval(function() {
                if(state)
                {
                    $(obj).css('color','#000000');
                    state = false;
                }
                else
                {
                    $(obj).css('color','rgb(255,0,0)');
                    state = true;
                }
            }, options.delay);
        });
    }
}(jQuery))

答案 3 :(得分:0)

您是否使用过Firebug或Chrome中的内置开发者工具检查了代码?我希望你需要改变

}(jQuery))

})(jQuery)

(移动括号......)