Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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 你能告诉我我的密码有什么问题吗?_Javascript - Fatal编程技术网

Javascript 你能告诉我我的密码有什么问题吗?

Javascript 你能告诉我我的密码有什么问题吗?,javascript,Javascript,其目的: 它应该创建一个div,然后使其缓慢移动到随机位置 问题是: 我尝试将其粘贴到Inspect元素控制台中。 它只创建div,然后停止。没有错误,没有任何迹象表明出了什么问题。这真让我烦透了 如果要查看发生了什么,可以按CTRL+SHIFT+J并将代码粘贴到inspect元素控制台中 守则: var l = document.createElement('div'); l.style.height = '100px'; l.style.width = '100px'; l.style.p

其目的: 它应该创建一个div,然后使其缓慢移动到随机位置

问题是: 我尝试将其粘贴到Inspect元素控制台中。 它只创建div,然后停止。没有错误,没有任何迹象表明出了什么问题。这真让我烦透了

如果要查看发生了什么,可以按CTRL+SHIFT+J并将代码粘贴到inspect元素控制台中

守则:

var l = document.createElement('div'); 
l.style.height = '100px';
l.style.width = '100px';
l.style.position = 'relative';
l.style.backgroundColor = 'orange';
l.id = 'di';
document.body.appendChild(l);
var lef = 0;
var to = 0;
var p = Math.random() * 1000;
var o = Math.random() * 400;
var h = setInterval(function () {
if (lef > p) {
    di.style.top = to + 'px';
    to = to + 1;
    if (to > o) {
        p = Math.random() * 1000;
        o = Math.random() * 400
    }
} else if (to > o) {
    di.style.left = lef + 'px';
    lef = lef + 1;
    if (lef > p) {
        p = Math.random() * 1000;
        o = Math.random() * 400
    } else {
        di.style.left = lef + 'px';
        lef = lef + 1;
        di.style.top = to + 'px';
        to = to + 1;
    }
}
}, 100)

我不知道您使用什么逻辑来生成
div
元素的
left
top
,但我制作了一个演示,显示了
div
不断改变其位置。代码中的问题是您使用di的方式不正确。相反,您应该喜欢:

var div_element = document.getElementById('di');
//and then using it like
div_element.style.left= some_value+"px";
div_element.style.top= some_value+"px";
下面是我制作的示例的代码:

var l = document.createElement('div'); 
l.style.height = '100px';
l.style.width = '100px';
l.style.position = 'relative';
l.style.backgroundColor = 'orange';
l.id = 'di';
document.body.appendChild(l);

var div_elem = document.getElementById(l.id);
//div_elem.style.top = "100px";
//alert(div_elem.id);
var h = setInterval(function () {
   div_elem.style.top = Math.floor((Math.random() * 100) + 1)+"px"; //Math.floor((Math.random() * 100) + 1);  Generates random number between 1 and 100
   div_elem.style.left = Math.floor((Math.random() * 200) + 1)+"px"; //Math.floor((Math.random() * 200) + 1);  Generates random number between 1 and 200
   //console.log('top = '+div_elem.style.top);
   //console.log('left = '+div_elem.style.left); 
}, 100) 

希望这有帮助。

有一个明显的问题;您应该使用
l
而不是
di
来引用添加的
。实际上,您从未在if语句中输入任何案例。
Math.random()
返回的最小值为0,因此
lef
to
永远不会大于
p
o
@HamidFzM没错,jQuery的设计目的是让过渡/效果等事情变得更容易,但jQuery是一条学习曲线。我认为对于所有密集型的目的来说,尝试从零开始做一些事情是一个很好的开始,特别是如果他是编程新手的话。否则,他将永远无法真正学习JavaScript,并将坚持将jQuery作为他所做一切的依赖项。例如,如果您添加了
console.log
语句并检查了变量的值,您可能自己就发现了问题。@chrisciefice请原谅我偏离主题,但知道您想要的短语是“所有意图和目的”可能会有所帮助