html 画布鼠标点击状态,HTML5画布 - 在鼠标点击时添加图像,在鼠标坐标

为响应晚真是不好意思。我知道这个问题比上帝更古老,但还没有一个可以接受的答案,所以我想我会为那些不想使用外部图书馆的人投入我的两分钱。

我为你写了一个简约的脚本,它会做你想做的 - 只需要相应地将fillRect()改为drawImage()即可。

var cn = document.getElementById("main");

var c = cn.getContext("2d");

var mouse = {x:0, y:0};

window.addEventListener('mousedown', mHandler);

function mHandler(event) {

mouse.x = event.clientX;

mouse.y = event.clientY;

};

function main() {

c.clearRect(0, 0, cn.width, cn.height);

c.fillStyle = "red";

c.fillRect(mouse.x, mouse.y, 50, 50);

}

setInterval(main, 1000/60);

我设置x和y值,你点击在画布上,然后绘制了某些那里fillRect()。

请注意,这并不总是按预期工作,因为pageX和pageY根据边框,填充,边距等而变化。您可以在小提琴中看到此内容。要做到这一点,只需将pageX/Y更改为offsetX/Y,或使用填充。

像这样的事情在mHandler功能将工作好一点:

if(event.offsetX && event.offsetY) {

mouse.x = event.offsetX;

mouse.y = event.offsetY;

}

else {

mouse.x = event.layerX;

mouse.y = event.layerY;

}

或者,如果你想缩短它:

mouse.x = event.offsetX ? event.offsetX : event.layerX;

mouse.y = event.offsetY ? event.offsetY : event.layerY;

然后你可以叫

context.drawImage(imgObj, mouse.x, mouse.y, imgObj.width, imgObj.height);

如果你想在鼠标点击的中心,只需拨打

context.drawImage(

imgObj,

mouse.x - imgObj.width/2,

mouse.y - imgObj.height/2,

imgObj.width, imgObj.height

);

再次,替代矩形为你的形象。

我希望这有助于任何人阅读今年以后!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值