【问题标题】:I get an error parsing value to left in javascript我在 javascript 中得到一个错误的解析值
【发布时间】:2014-03-08 16:14:56
【问题描述】:

此代码假设向左迭代 300 万次,当它到达 300 万次时返回第一个数组位置,但我不能以某种方式做到这一点。如果没有设置的计时器,有人可以帮我让它工作吗?

主体:

<div id="placeDiv">ok</div>
<script type="text/javascript">
var times = [];
for (var i = 0; i < 3000000; i++) {
    times.push(i);
}
var move=times;             
if(i == move.length-1) {
    i=0;
} else {
    i=i+1;
}
document.getElementById("placeDiv").style.left = move[i];
</script>

CSS:

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

【问题讨论】:

  • 首先30000不是300万!
  • “如果没有设置的计时器是可能的” – 不使用计时器,你将不会得到任何类型的动画(假设这是你在追求吗?)。当然,在没有 unit 的情况下为 left 设置值是错误的(除非该值是 0)。
  • 但是对于css div的背景颜色,它是不同的, document.getElementById("left").style.left=array[i] 和 document.getElementById("bgcolor ").style.backgroundColor=array[i]?

标签: javascript css arrays html for-loop


【解决方案1】:

html:

<div id="ok">ok</div>

javascript:

for (var i=0; i<700000; i++) {
    document.getElementById("ok").style.left = (i) + "px";
    if(i==500) alert(i);
}

css:

#ok { position: absolute; }

终于明白css样式的单位概念了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2020-10-07
    • 2022-09-07
    • 2013-09-05
    相关资源
    最近更新 更多