【发布时间】:2015-06-21 04:47:28
【问题描述】:
我正在尝试创建一个 javascript 函数,该函数将为光标下方画布的像素着色。当它运行时,彩色像素出现在浏览器的左边缘,尽管它们处于正确的垂直位置。这是我的功能:
function writecolor(event) {
var canvas = document.getElementById("colcan");
var ctx = canvas.getContext("2d");
var stylestr;
var permuda = "0123456789ABCDEF";
var os = $("#colcan").offset();
var x= event.X-os.left;
var y= event.clientY-os.top;
console.log(x);
var str = "#";
for (x=0; x<6;x++) {
str += permuda.charAt(Math.floor(Math.random()*16));
}
ctx.fillStyle = str;
ctx.fillRect(x,y,1,1);
}
function setdim() {
var canv = document.getElementById("colcan");
canv.height=$(window).height();
canv.width=$(window).width();
}
$(document).ready(function() {
setdim();
$(window).on("resize", function() {setdim()});
$("#colcan").on("mousemove", function(event) { writecolor(event)});
});
我可以从控制台得知 mousemove 正在读取正确的 X 坐标。我一直无法弄清楚为什么像素没有出现在正确的水平位置。这是一个 jsfiddle:https://jsfiddle.net/xt87kb2q/
【问题讨论】:
标签: javascript jquery html canvas