【发布时间】:2017-03-23 15:05:15
【问题描述】:
所以,我现在正在浏览我的 JavaScript 书籍,其中有一个画布绘图的小例子。我从书中复制了代码,但画布仍然是白色的。
然后,我继续下载作者收集的书中所有脚本的集合,并使用他的代码,它出乎意料地工作。
对我来说,这两个代码看起来相同,唯一不同的是我使用 " " 表示字符串,而作者使用了 ' '。
这是我的代码:
function init() {
let canvas = document.getElementById("canvas");
canvas.addEventListener("mousemove", handleMouseMove, false);
let context = canvas.getContext("2d");
let started = false;
function handleMouseMove(e) {
let x, y;
if (e.clientX || e.clientX == 0) {
x = e.clientX;
y = e.ClientY;
}
if (!started) {
context.beginPath();
context.moveTo(x, y);
started = true;
} else {
context.lineTo(x, y);
context.stroke();
}
}
}
document.addEventListener("DOMContentLoaded", init);
这是作者的代码:
function init() {
let canvas = document.getElementById('canvas');
canvas.addEventListener('mousemove', handleMouseMove, false);
let context = canvas.getContext('2d');
let started = false;
function handleMouseMove(e) {
let x, y;
if (e.clientX
|| e.clientX == 0) {
x = e.clientX;
y = e.clientY;
}
if (!started) {
context.beginPath();
context.moveTo(x, y);
started = true;
} else {
context.lineTo(x, y);
context.stroke();
}
}
}
document.addEventListener('DOMContentLoaded', init);
【问题讨论】:
-
它们不相同,例如你有
y = e.ClientY;,应该是y = e.clientY;。 (小写 C) -
天哪,根本没看到。非常感谢。
标签: javascript html canvas