【发布时间】:2013-12-24 13:05:09
【问题描述】:
这是我的简单代码:
<!DOCTYPE html>
<html>
<head></head>
<body>
<style>
</style>
<script>
var exit = 0;
document.onmousedown = function (e) {
exit = 0;
document.onmousemove = function (e) {
if (exit == 1) {
return;
} else {
var x = e.pageX;
var y = e.pageY;
var e = document.createElement("div");
e.style.width = 10 + "px";
e.style.height = 10 + "px";
e.style.background = "red";
e.style.top = y + "px";
e.style.left = x + "px";
e.style.position = "absolute";
document.body.appendChild(e);
}
};
};
document.onmouseup = function (e) {
exit = 1;
};
</script>
</body>
</html>
就像画家。你按住鼠标左键,当你移动鼠标时,它应该画出由 div 元素组成的线,当你释放按钮时,它会停止。它实际上可以工作......有时。第一次它工作完美,但是在让鼠标左键向上并再次按下之后,只绘制了一个元素并且移动鼠标不会做任何事情。确切地说 - 有时会,有时不会。最好是如果你可以尝试这段代码和看看会发生什么。谢谢。
【问题讨论】:
-
我做了一个fiddle,它似乎工作正常
-
尝试多画几次线。我也试着拨弄它,它又变得奇怪了。
-
怪异是什么意思?我创建了很多行,看起来还可以。
-
当你按下 LMB 时,它只绘制一个 div。然后释放该按钮后,div 被鼠标移动绘制 - 甚至没有再次按下 LMB。也许我的鼠标有问题吧 :)
-
我成功重现了你的错误,但我真的不知道为什么会这样。在我看来,当你绘制时,它会选择一个元素,下次绘制时,它会尝试移动它但它不能移动,所以它只绘制 1 个 div,然后在 mousemove 上绘制其余部分,即使鼠标不在t实际按下
标签: javascript html