0

我有这个代码:

function divHideShow(divToHideOrShow) 
{
    var div = document.getElementById(divToHideOrShow);

    if (div.style.display == "none") 
    {
        div.style.display = "block";
    }
    else 
    {
        div.style.display = "none";
    }

}       

执行 div.style.display = "block"; 时如何让它等待 2 秒 ?

谢谢

4

2 回答 2

3

您可以使用该函数setTimeout在运行某些代码之前等待指定的时间(以毫秒为单位)。

function divHideShow(divToHideOrShow) 
{
    var div = document.getElementById(divToHideOrShow);

    if (div.style.display == "none") 
    {
        setTimeout(function () {
            div.style.display = "block";
        }, 2000);
    }
    else 
    {
        div.style.display = "none";
    }

}

可能值得考虑添加和删除一个类,而不是直接设置样式。然后,您可以使用有助于可维护性的 CSS 处理所有样式(并且您也可以使用 CSS3 动画来淡入淡出/扩大/缩小事物)。

于 2013-06-03T14:56:05.857 回答
2

这回答了你的问题:第二个参数setTimeout需要毫秒,所以,2000 milliseconds= 2 seconds

function divHideShow(divToHideOrShow) 
{
    var div = document.getElementById(divToHideOrShow);

    if (div.style.display == "none") 
    {
        setTimeout(function(){div.style.display = "block";},2000);

    }
    else 
    {
        div.style.display = "none";
    }

}  

如果您需要fadeInfadeOut影响您最好考虑使用 jquery 库:

您需要包含jquery库才能使其正常工作.....

function divHideShow(divToHideOrShow) 
{

     var time=600;  //milli seconds alter this for changing speed
     $("#"+divToHideOrShow).fadeToggle(time);

}  
于 2013-06-03T14:53:17.323 回答