javascript - 循环 css div 在 javascript 中留下一个数组

标签 javascript css arrays html iteration

这段代码直接转到数组的最后一个位置,我想要的是遍历或循环遍历它们,然后在最后一个位置转到数组的第一个位置。我尝试了其他方法,但它给了我在 Firefox 中留下的错误解析。这是代码 fiddle Demo .

正文:

 <div id="placeDiv">ok</div>
 <script>
    var times = ["2px","2000px","200px","12px","20px","200px","2000px"];
    var move=times;             
    var i=0;
    if(i == move.length-1) 
    {i=0;}
    else
    {i=i+1;};
    document.getElementById("placeDiv").style.left=move[i];
 </script>

CSS:

<style>#placeDiv{position:absolute;top:0px;width:100px;height:100px;background-color:purple}</style>

此代码无效:

    var times = [];
    for (var i = 0; i < 30000; i++) {
        times.push("\""+i+"px\"");
 }   var move=times;             
         if(i == move.length-1) 
     {i=0;}
     else
     {i=i+1;};
document.getElementById("placeDiv").style.left=move[i];

使用上面的代码,我在 firefox 中得到了这个错误: 解析“左”的值时出错。声明已删除。

最佳答案

你需要在这里使用setTimeout。例如:

var times = ["2px", "20px", "30px", "12px", "20px", "200px", "20px"],
    move = 0,
    div = document.getElementById("placeDiv");

setTimeout(function next() {
    div.style.left = times[move++ % times.length];
    setTimeout(next, 1000)
}, 1000);

要循环数组值,使用 % 运算符非常有用。

演示:http://jsfiddle.net/m6w6K/1/

或者使用setInterval:

function makeMove() {
    div.style.left = times[move++ % times.length];
}

setInterval(makeMove, 1000);

演示:http://jsfiddle.net/m6w6K/4/

关于javascript - 循环 css div 在 javascript 中留下一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22270001/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property '0' of null

javascript - 谷歌地理编码地址分割

javascript - Node.js:Redis 安全说明

jquery - CSS 包装器 div 高度 : 100% not covering full page height

java - 如何将用户输入的整数插入到数组中?

javascript - Highcharts 分组类别数据 csv

javascript - Jquery 选择器使用脚本更新

html - 当浏览器最小化时, float li 元素的格式不会扩展

html - 全屏 CSS : 100vh DIVs wholly inside their parent DIV

c++ - 使用递归 C++ 返回数组的子集