Javascript 你能告诉我我的密码有什么问题吗?
其目的: 它应该创建一个div,然后使其缓慢移动到随机位置 问题是: 我尝试将其粘贴到Inspect元素控制台中。 它只创建div,然后停止。没有错误,没有任何迹象表明出了什么问题。这真让我烦透了 如果要查看发生了什么,可以按CTRL+SHIFT+J并将代码粘贴到inspect元素控制台中 守则: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
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请原谅我偏离主题,但知道您想要的短语是“所有意图和目的”可能会有所帮助