网格中灯光序列的Javascript问题

标签 javascript html css

我很难让我制作的网格上的灯一个接一个地出现。目前所有的灯都同时亮起,但我不确定如何让盒子一个接一个地亮起来。

我已经粘贴了下面的代码:

html:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<LINK REL=StyleSheet HREF="style.css" TYPE="text/css" MEDIA=screen>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"> </script> 
<script language="JavaScript" src="script.js">
</script>
</head>
<body>

<div class="container">
    <div class="box spacing"></div>
    <div class="box spacing"></div>
    <div id="square1id" class="box spacing"></div>
    <div class="box"></div>

    <div class="box spacing"></div>
    <div class="box spacing"></div>
    <div id="square2id" class="box spacing"></div>
    <div class="box"></div>

    <div id="square3id" class="box spacing"></div>
    <div class="box spacing"></div>
    <div id="square4id" class="box spacing"></div>
    <div class="box"></div>

    <div  id="square5id" class="box spacing"></div>
    <div class="box spacing"></div>
    <div id="square6id" class="box spacing"></div>
    <div class="box"></div>
</div>

</body>
</html>

CSS:

 body{
    background-color:#000000;
    margin:0;
    padding:0;
}

h1{
  color:#ffffff;
  text-align:center;
}

.container{
    overflow:hidden;
    width:860px;
    margin-left:250px;
    margin-top:20px;
}
.box{
    width:210px;
    height:120px;
    float:left;
    background-color:#4D4D4D;
    margin-bottom:3px;
}

.spacing{
    margin-right:3px;
}

脚本:

  $(document).ready(function(){

    var colourinfo = {
        square1id: [
                    '#000000'
                    ],

        square2id: [
                    '#ffffff'
                    ],
        square3id: [
                    '#FFE600'
                    ],
        square4id: [
                    '#FFE600'
                    ],          
        square5id: [
                    '#FFE600'
                    ],
square6id: [
                    '#FFE600'
                    ]                   

    };

    var count = 0;

    var changecol = function(){
        $.each(colourinfo, function(tileid, colarray){
           $('#'+tileid).css('background-color', colarray[count%colarray.length]);
        }); 
        count++;
    };

    setInterval(changecol, 1000);
});

如果有任何建议,我将不胜感激。谢谢

最佳答案

潜在的问题是,当第一次调用 changecol 时,它循环遍历您的colourinfo 数据结构并应用 所有 中的颜色第一次执行。

我做了 this jsfiddle那就是我认为你现在想做的,也许你下一步打算做的。它每 100 毫秒一次通过一系列颜色循环每个节点。

关于网格中灯光序列的Javascript问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6721246/

相关文章:

css grid - 让网格向下而不是跨越五个相等的列

css - 淡出线性渐变。 CSS 还是图像?

javascript - 有没有办法给 "link"几个元素?

javascript - javascript 中的 hasOwnProperty 和 Object.keys 未按预期工作

javascript - 如何使用 Vue JS 在 HTML 的同一标记中使用 "v-if"和 "v-else"?

javascript - 在express nodejs中将图像文件转换为base64

css - 关于 css 选择器的最佳实践?

javascript - browserify无法调用我捆绑的函数,它没有定义

javascript - 使用 jquery 删除跨度

html - div中的Struts2标签显示为空