Javascript - 如何每秒显示和隐藏元素?

时间:2014-03-14 11:22:14

标签: javascript html css settimeout setinterval

Tried Code:

Javascript:

function repeatShowAndHide(){
    setTimeout("function(){document.getElementById('adBottom'}.style='visibility:hidden;'",1000);
    setTimeout("function(){document.getElementById('adBottom'}.style='visibility:visible;'",2000);
    repeatShowAndHide();
}

HTML:

<div id="adBottom">
    Join <a href="http://lapcruis.com/">lapcrius.com</a> and be cool! | Recommended Website List : { 1. <a href="http://web-tool.weebly.com">web-tool.weebly.com</a> | 2. <a href="http://myzonehk.weebly.com">myzonehk.weebly.com</a> }
</div>

CSS:

#adBottom {
    visibility:visible;
    position:fixed;
    top:auto;
    bottom:0px;
    right:auto;
    left:0px;
    width:100%;
    height:auto;
    background-color:#000000;
    color:#FFFFFF;
    border:2px dashed #cccccc;
    text-align:center;
}

请帮忙。我不知道如何解决它。 请帮忙。 THX。

5 个答案:

答案 0 :(得分:0)

var interval = setInterval(repeatShowAndHide, 1000);

您不需要从repeatShowAndHide();调用该函数,它每隔一秒就会调整一次。

答案 1 :(得分:0)

试试这个。

HTML

<div id='test'>This is test</div>

的javascript:

var j = setInterval(function () {
    var visible = document.getElementById('test').style.visibility;
    if(visible=='hidden'){
        document.getElementById('test').style.visibility = 'visible';
    }else{
        document.getElementById('test').style.visibility = 'hidden';
    }
}, 1000);

答案 2 :(得分:0)

我认为这个例子是自我解释的:

setInterval(function(){
    var myElement = document.getElementById('adBottom');

    if(myElement.style["visibility"]=="hidden"){
        myElement.style["visibility"]="visible";
    }
    else
    {
        myElement.style["visibility"]="hidden";
    }
},3000);

setInteval的功能就像一个计时器,每隔3000毫秒在这个例子中打勾。

答案 3 :(得分:0)

使用此:

var element = document.getElementById("adBottom")
var interval = setInterval(function () {
    if(element.style.visibility === "visible")
        element.style.visibility = 'hidden';
    else
        e.style.visibility = 'visible';
}, 1000);                        // every 1000 ms

// use clearInterval(interval) to remove interval

.setInterval这里每秒执行一次。更好的方法

你每次都从内部反复调用repeatShowAndHide函数,即无限递归并继续将setTimeout添加到彼此之上而不停止,并将函数参数作为字符串传递。

答案 4 :(得分:0)

有几个问题。首先,如果你将一个匿名函数传递给setTimeout,实际上传递一个函数;不要为字符串中的函数传递代码(基本上会丢失双引号)。

其次,更重要的是,你在自己内部调用repeatShowAndHide(),这实质上是无限递归。你想在第二次超时(两秒钟)结束后调用它。

也就是说,使用一秒钟的间隔可以更简单地根据当前值切换可见性。

var adBottom = document.getElementById('adBottom'),
    toggleInterval = setInterval(function() {
        adBottom.style.visibility = (adBottom.style.visibility === 'hidden' ? 'visible' : 'hidden');
}, 1000);

然后,如果您想要停止它,您只需要拨打clearInterval(toggleInterval);