Javascript 如何创建向左或向右的运动图像动画?

Javascript 如何创建向左或向右的运动图像动画?,javascript,html,Javascript,Html,嗨,我有一个关于如何改变动画图像坐标的问题 <html> <head></head> <body> <canvas id="img" width="600" height="400" style="border:2px solid black;"> </canvas> <script> (function () { images = []; function loop () { var i; window.

嗨,我有一个关于如何改变动画图像坐标的问题

<html>
<head></head>
<body>
<canvas id="img" width="600" height="400" style="border:2px solid black;">
</canvas>
<script>
(function () {  
images = [];

function loop () {
var i;
window.requestAnimationFrame(loop);
for (i = 0; i < images.length; i += 1) {
images[i].update();
images[i].render();
}
}
function tampilan(gambar) {
var tampil = {},
indexFrame = 0,
jmlputaran = 0,
putaranPerFrame = gambar.putaranPerFrame || 0,
jmlFrame = gambar.jmlFrame || 1;

tampil.context = gambar.context;
tampil.width = gambar.width;
tampil.height = gambar.height;
tampil.x = 0;
tampil.y = 0;
tampil.image = gambar.image;
tampil.ratio = 1;

tampil.update = function () {
jmlputaran += 1;
if (jmlputaran > putaranPerFrame) {
jmlputaran = 0;
if (indexFrame < jmlFrame - 1) {    
if (indexFrame < jmlFrame - 1) {    
indexFrame += 1;
} 
else 
{
indexFrame = 0;
}
}
};  
tampil.render = function () {

tampil.context.drawImage(
tampil.image,
indexFrame * tampil.width / jmlFrame,
0,
tampil.width / jmlFrame,
tampil.height,
tampil.x,
tampil.y,
tampil.width / jmlFrame * tampil.ratio,
tampil.height * tampil.ratio);
};
tampil.lebarframe = function () {
return tampil.width / jmlFrame;
};
return tampil;
}
function draw () {  
var a,
img;
img = new Image();  
a = images.length;
images[a] = tampilan({
context: canvas.getContext("2d"),
width: 380,
height: 147,
image: img,
jmlFrame:3,
putaranPerFrame: 30,
});
img.src = "image.png";
}
var canvas = document.getElementById("img");
var context = canvas.getContext("2d");
{
draw();
}
loop();

}());
</script>
</body>
</html>

(函数(){
图像=[];
函数循环(){
var i;
window.requestAnimationFrame(循环);
对于(i=0;iputaranPerFrame){
jmlputaran=0;
如果(indexFrame
例如,我想让我的图像像这样运动-->www.html5canvastutorials.com/advanced/html5-canvas-quadratic-motion-animation/


谢谢。

您可以通过css转换轻松实现这一点。以下是您需要的简单示例

您可以通过这种方式更改画布的坐标

您需要安装并附加插件

演示 HTML: 要将图像移动到坐标(150600),您需要将
'矩阵(1,0,0,1,50,50)
替换为
'矩阵(1,0,0,1150600)

<canvas id="img"></canvas>
<script type="text/javascript" src="path/to/the/downloaded/plugin"></script>
var canvas = document.getElementById("img");
var context = canvas.getContext("2d");
var sticky = new Image();
sticky.src = "http://www.joomlaworks.net/images/demos/galleries/abstract/3.jpg";
sticky.onload = function () {
    context.drawImage(sticky, 0, 0);
};

$('#img').click(function () {
    $('#img').animate({'transform': 'matrix(1,0,0,1,50,50)'});
});