javascript - 每隔一秒在 javascript 中显示和隐藏元素

标签 javascript html svg

我想隐藏并每隔一秒看到html中的一些元素。我在 JavaScript 中有这段代码。 hello() 从主 html 调用 onload。然后它用函数 go 调用来启动定时器!正如我所想的那样,它每一秒都会改变它显示的内容。

function hello() {

myTimer();


}
var indexx = 0;
function myTimer(){
var myVar1=setInterval(function(){go1()},1000);
}
function go1()
{

 if(indexx==0)
    {
        var results = document.getElementById("water_2_5");
        results.setAttributeNS(null,"visibility","hidden");
        var results = document.getElementById("water_2_1");
        results.setAttributeNS(null,"visibility","visible");

        indexx+=1;

    }   else
    if(indexx==1)
    {
        results = document.getElementById("water_2_1");
        results.setAttributeNS(null,"visibility","hidden");
        //
        var results = document.getElementById("water_2_7");
        results.setAttributeNS(null,"visibility","visible");


        indexx+=1;

    }
    if(indexx==2)
    {
    results = document.getElementById("water_2_7");
        results.setAttributeNS(null,"visibility","hidden");
        //
        var results = document.getElementById("water_2_6");
        results.setAttributeNS(null,"visibility","visible");


        indexx+=1;

    }
    if(indexx==3)
    {
    results = document.getElementById("water_2_6");
        results.setAttributeNS(null,"visibility","hidden");
        //
        var results = document.getElementById("water_2_5");
        results.setAttributeNS(null,"visibility","visible");

                indexx=0;
        }

}

但它只显示给我,第一部分和最后一部分? 有人可以帮助我如何实现这一目标吗?

答案是:

function hello() {

myTimer();


}
var indexx = 0;
function myTimer(){
var myVar1=setInterval(function(){go1()},1000);
}
function go1()
{

 if(indexx==0)
    {
        var results = document.getElementById("water_2_5");
        results.setAttributeNS(null,"visibility","hidden");
        var results = document.getElementById("water_2_1");
        results.setAttributeNS(null,"visibility","visible");

        indexx+=1;

    }   else
    if(indexx==1)
    {
        results = document.getElementById("water_2_1");
        results.setAttributeNS(null,"visibility","hidden");
        //
        var results = document.getElementById("water_2_7");
        results.setAttributeNS(null,"visibility","visible");


        indexx+=1;

    } else
    if(indexx==2)
    {
    results = document.getElementById("water_2_7");
        results.setAttributeNS(null,"visibility","hidden");
        //
        var results = document.getElementById("water_2_6");
        results.setAttributeNS(null,"visibility","visible");


        indexx+=1;

    }else 

    {
    results = document.getElementById("water_2_6");
        results.setAttributeNS(null,"visibility","hidden");
        //
        var results = document.getElementById("water_2_5");
        results.setAttributeNS(null,"visibility","visible");

                indexx=0;
        }

}

最佳答案

通过将所有的if 语句(在第一个之后)设为else if 来对它们进行分组。这样, block 内的增量 (indexx+=1;) 不会导致下一个 if 为真。

关于javascript - 每隔一秒在 javascript 中显示和隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16570669/

相关文章:

javascript - return如何在这个函数中获取参数

javascript - 去除超大图像上的模糊

javascript - D3 : get the bounding box of a selected element

html - VS Code 无法识别新的 HTML 文件

javascript - 单击汉堡图标并调整窗口大小后导航栏消失(我不想让它隐藏)

javascript - 为什么我的 SVG 图像在 chrome 上显示完美,但当我在 iPhone 上打开它时却根本不显示?

javascript - 从 Adob​​e Illustrator 对象创建动画 SVG/GIF 图像

javascript - Node.js 0.12 中提供的 ECMAScript 6 功能

javascript - 使用 devexpress 在 IE 上滚动条

javascript - 如何在asp.net中单击按钮下载html文件?