如何在 JavaScript 中移动 <img> 元素
How to move an <img> element in JavaScript?
有人可以帮助我查看我的代码吗?我正在尝试在画布内移动图像,但它不会移动。我的代码可能是错误的。有人可以帮我吗?谢谢!
<script>
var canvas;
var canvasContext;
var framesPerSecond = 30;
var posX = 10;
var posY = 10;
window.onload = function(){
canvas = document.getElementById("playGround");
canvasContext = canvas.getContext("2d");
setInterval(drawEverything(), 1000/framesPerSecond);
canvas.addEventListener("keydown", moveImg);
}
function drawEverything(){
colorRect(0,0,canvas.width,canvas.height,"black");
drawImage("mario",posX,posY);
}
function drawImage(id, x, y){
var img = document.getElementById(id);
canvasContext.drawImage(img,x,y,30,30);
}
function colorRect(x, y, width, height, color){
canvasContext.fillStyle = color;
canvasContext.rect(x,y,width,height);
canvasContext.stroke();
}
function moveImg(evt){
switch(evt.keyCode) {
// Left arrow key pressed
case 37:
posX-=5;
break;
// Up Arrow Pressed
case 38:
posY-=5;
break;
// Right Arrow Pressed
case 39:
posX+=5;
break;
// Down Arrow Pressed
case 40:
posY+=5;
break;
}};
</script>
我在网上查看了答案,但似乎找不到任何东西。也许我有语法问题?
您有两个问题,如下所示。检查工作演示 - 小提琴(首先单击右下角的任意位置以在此处设置焦点):
-
画布没有焦点,因此您必须将
canvas.addEventListener("keydown", moveImg);
更改为document.addEventListener("keydown", moveImg);
-
在
moveImg
功能中,您忘记根据按下的键更新图像位置。在 switch 语句后添加drawImage("mario",posX,posY);
。
相关文章:
- 在谷歌地图 API 中,不会为 img 元素触发 Onclick 事件
- angularjs如何找到img元素的高度和宽度
- 为什么可以'tI将IMG元素链接到类似于“;http://en.wikipedia.org/wiki/File:
- 输出表示img元素不存在(为null),但脚本在img的实现下面,并使用了onload()
- 使用带有 img 元素的 css 背景图像
- 将功能元素 IMG 更改为 DIV 背景
- 查找所有嵌套的 img 元素
- 如何访问嵌套在 h1 标签中的 img 标签元素
- 为什么在循环中动态将 .onclick 添加到 img 元素需要返回函数()
- 如何观看 img 元素的 ngSrc 并在自定义指令中获取新的宽度和高度
- 无法将 img 元素换成 SVG
- jquery toggleClass 在 img 元素上不起作用
- 当存在 IMG 元素时,如何设置插入符号位置
- JQuery 查找子元素内部文本并替换为 IMG HTML
- 在元素上单击获取 img src 属性值
- 关于更新Javascript中的img元素类
- 延迟加载图像,但对img元素使用标准语法
- Javascript canvas.toDataUrl()将图片发送到<img>元素
- 如何使用javascript添加img元素
- 元素img上的src属性值不正确:对于动态生成的img src,必须是非空的