似乎无法使用关键事件更改图像位置
Can't seem to change image position with key event
我正在慢慢学习一些基本的HTML 5和Javascript。我写了一个Javascript文件,它应该显示一个图像,然后按右键改变图像的位置。 图像加载,但当我按右键时,它不会改变位置。 我做错了什么?
var canvas = document.createElement("canvas");
canvas.width = 800;
canvas.height = 600;
canvas.style = "border:2px solid blue";
canvas.addEventListener('keydown', doKeyDown, true);
var ctx = canvas.getContext("2d");
document.body.appendChild( canvas );
var guy1Image = new Image();
guy1Image.onload = function () {
ctx.drawImage( guy1Image, x, y );
};
guy1Image.src = "img/1.png";
var x = 0;
var y = 0;
function doKeyDown( e ) {
if ( e.keyCode == 39 ) {
x = 128;
y = 128;
}
}
您无法将焦点放在画布元素上,这意味着您的键控事件将不起作用。这里有一些解决方法
var lastDownTarget;
window.onload = function() {
document.addEventListener('mousedown', function(event) {
lastDownTarget = event.target;
alert('mousedown');
}, false);
document.addEventListener('keydown', function(event) {console.log(lastDownTarget)
if(lastDownTarget == canvas) {
alert('keydown');
}
}, false);
}
在按键下清除画布并再次重绘:)
function doKeyDown( e ) {
if ( e.keyCode == 39 ) {
var canvas=document.getElementsByTagName("canvas");
var ctx = canvas.getContext("2d");
ctx.clearRect( 0, 0, 800, 600 );
x = 128;
y = 128;
ctx.drawImage( guy1Image, x, y );
}
}
相关文章:
- 无法在java脚本中调用图像的点击事件函数
- 如何使用更新图像源以响应新闻事件
- 正在捕获动态更改其源的图像的加载事件
- 如何在asp:linkButton上显示鼠标悬停事件上的图像
- 在onmouseover事件中更改图像,并为每个事件设置中断/间隔
- 如何通过一个onclick事件更改两个单独的图像
- 如何使用onclick事件点击一个图像,并让它更改同一网页上的另一个图像
- 使用事件侦听器更改图像
- HTML5/JavaScript图像点击事件
- 使用单击事件如何更改图像
- 获取图像宽度的最早事件
- 使用完整日历在网站上获取并显示来自Google日历事件的附加图像
- 如何使用 OnClick 事件更改结构 JS 的覆盖图像
- 单击图像滑块计时器的事件
- 如何在鼠标移动事件时更改图像的窗口中心和宽度
- iFrame.load事件未等待预加载图像完成
- 创建随机图像交换并禁止鼠标悬停事件
- 单击事件,将图像从一个表放到另一个表中.Javascript、HTML
- 单击Eveent以在Jquery中自动更改事件图像
- Javascript定时事件/图像