Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何移动多个div框的背景?_Javascript_Html - Fatal编程技术网

Javascript 如何移动多个div框的背景?

Javascript 如何移动多个div框的背景?,javascript,html,Javascript,Html,在我的剧本中似乎有一个问题,我不知道它可能是什么 这是我的建议 我试图改变多个div框的背景。每秒钟都会生成一个随机数,如果弹出正确的一个,则会随机选择一个div,并将其背景移动100px。如果该div上的背景已被移动,它将恢复到其原始状态 JavaScript CSS HTML 简单的错误 if (data[n] = 0) { // here you are always assigning the value 0 to data[n] 应该是 if (data[n] ===

在我的剧本中似乎有一个问题,我不知道它可能是什么

这是我的建议

我试图改变多个div框的背景。每秒钟都会生成一个随机数,如果弹出正确的一个,则会随机选择一个div,并将其背景移动
100px
。如果该div上的背景已被移动,它将恢复到其原始状态


JavaScript

CSS

HTML

简单的错误

if (data[n] = 0) { // here you are always assigning the value 0 to data[n]
应该是

if (data[n] === 0) { // here you are actually comparing data[n] with the value 0

就我所见,JSFIDLE仍然不能工作。我冒昧地重写了它:


您可能想选择一个更好的标题,如果这里的所有内容都被命名为javascript问题,那么我们将有一个严重的问题:)当然。。。我怎么没注意到。。。我为我愚蠢的德普道歉。^^'谢谢,看起来简单多了。我真的很喜欢内联if语句的想法。
<div id="time"></div>
<div class="write"></div>
<div class="write"></div>
<div class="write"></div>
<div class="write"></div>
<script src="Construct.js"></script>
if (data[n] = 0) { // here you are always assigning the value 0 to data[n]
if (data[n] === 0) { // here you are actually comparing data[n] with the value 0
div = document.querySelector('#time');
write = document.querySelectorAll('.write');
data = [0, 0, 0, 0];
setTimeout( slideBG, 1000 );

function slideBG(){
    var num = Math.floor(Math.random() * 2);
    n = Math.floor(Math.random() * 4);
    write[n].style['background-position'] = data[n] === 0 ? '0 100px' : '0 0';
    data[n] = Math.abs(data[n]-1);
    setTimeout(slideBG, 1000);
}