替代blink()方法

时间:2013-07-16 14:42:39

标签: javascript html

我需要在我的应用程序中使用闪烁功能。基本上,我正在创建一个计算器,我需要像“|”这样的东西用户从按钮输入每个数字后闪烁。对于firefox和opera,类似于:

var str = "Hello world!";
document.write(str.blink());

这正是我想要的。我的问题是他们无法在Chrome,IE或Safari中使用。是否有任何简单的替代品,或者如果我希望我的应用程序在跨浏览器上运行,我必须自己创建闪烁功能?

3 个答案:

答案 0 :(得分:4)

你可以只使用css3:

@keyframes 'blink' {
   0% { background: rgba(255,0,0,0.5); }
   50% { background: rgba(255,0,0,0); }
   100% { background: rgba(255,0,0,0.5); }
}

答案 1 :(得分:1)

如果您真的想要跨浏览器兼容性,那么您应该使用库,例如​​jQuery。

这是一个很好的小脚本,可以完成你想要的任务 - http://www.silverphp.com/simple-jquery-blink-script-alternative-to-html-blink-tag.html

另一方面,如果你更喜欢vanilla JS,你可能必须自己实现它。也许使用setInterval()和一个使元素消失的函数?

答案 2 :(得分:1)

试试这个:解决方案NO 1

您可以创建自己的自定义闪烁功能。这也可以通过创建css类并将它们添加到我们的元素来完成。

function blink()
    {
        setInterval(function () {
            document.getElementById("blink").style.webkitTransitionDuration = "0.7s";
            document.getElementById("blink").style.opacity = 0;
            setTimeout(function () {
                document.getElementById("blink").style.webkitTransitionDuration = "0.7s";
                document.getElementById("blink").style.opacity = 1;
            }, 700);
        },1400);

    }

OR

试试这个 - >解决方案NO.2

<强> JAVASCRIPT

function blink()
        {       
document.getElementById('blink').className = "animated blink_css";
        }

在css中

.animated {
    -webkit-animation-fill-mode:both;
    -moz-animation-fill-mode:both;
    -ms-animation-fill-mode:both;
    -o-animation-fill-mode:both;
    animation-fill-mode:both;
    -webkit-animation-duration:1s;
    -moz-animation-duration:1s;
    -ms-animation-duration:1s;
    -o-animation-duration:1s;
    animation-duration:1s;
}

  @keyframes 'blink' {
   0% { background: rgba(255,0,0,0.5); }
   50% { background: rgba(255,0,0,0); }
   100% { background: rgba(255,0,0,0.5); 
}
//try moz for mozilla,o for opera and webkit for safari and chrome 
    .blink_css {
        -webkit-animation-name: blink;
        -moz-animation-name: blink;
        -o-animation-name: blink;
        animation-name: blink;
    }

他们两个都会工作。测试!!!