在HTML5画布上绘制图像

B型

我想在画布上绘制图像,但是图像只会在单击画布时显示在该位置。我还学习了该element.getBoundingClientRect方法,方法将使我能够获取画布的偏移量。我想将它们组合起来,所以当单击画布的任何部分时,图像将出现在同一位置,并且X和Y偏移也将显示出来。

当前,我的图像将在加载时显示,当我在画布上单击时如何更改图像,该图像将出现在同一位置。第二件事是同时显示图像的X和Y偏移位置。

霍维蒂亚

像这样修改您的JS代码:

var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");

$results=$("#results");
$dotposition=$("#dotposition");
var position = {x: 0, y: 0};

function handleMouseMove(e) {
    e.preventDefault();
    e.stopPropagation();

    // You could calc the offsets once if you know
    // the user will not scroll the canvas
    var BB=canvas.getBoundingClientRect();
    var offsetX=BB.left;
    var offsetY=BB.top;

    mouseX=parseInt(e.clientX-offsetX);
    mouseY=parseInt(e.clientY-offsetY);
    $results.text("Mouse position: "+mouseX+" / "+mouseY);
    position.x = mouseX;
    position.y = mouseY;
}

function handleMouseClick(e) {
    //Clearing the canvas before redraw, remove this line if you want to keep prev images
    ctx.clearRect ( 0 , 0 , canvas.width , canvas.height );

    ctx.drawImage(img,position.x - img.width / 2,position.y - img.height / 2);
    $dotposition.text("Dot position: "+position.x+" / "+position.y);
}

var img = new Image();
img.onload = function(){
    canvas.onmousemove = handleMouseMove;
    canvas.onclick = handleMouseClick;
};
img.src="https://dl.dropboxusercontent.com/s/7vlxwy1156wnhcw/redFood.png";

http://jsfiddle.net/ZH4KW/1/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在Phonegap中的HTML5画布上绘制图像

来自分类Dev

清除画布后未绘制图像(html5画布)

来自分类Dev

如何在HTML5画布内旋转图像而不绘制图像?

来自分类Dev

Chrome 31.0 HTML5画布绘制图像

来自分类Dev

在html5画布内绘制图像的一部分

来自分类Dev

在html5画布内绘制图像的一部分

来自分类Dev

列表内的HTML5 Canvas,无法在所有画布上绘制图像

来自分类Dev

为什么HTML5 drawImage无法在画布上绘制图像?

来自分类Dev

html5画布绘制多个图像

来自分类Dev

RXJS在HTML5画布上绘制线条

来自分类Dev

无法在html5画布上绘制

来自分类Dev

在HTML5画布上绘制多个图像有时不起作用

来自分类Dev

如何获取在HTML5画布上绘制的图像的X / Y值?

来自分类Dev

如何在HTML5画布上绘制背景图像

来自分类Dev

如何下载HTML5画布上的图像?

来自分类Dev

HTML5画布图像上的插图阴影

来自分类Dev

需要帮助JS图像事件侦听器在html5画布上绘制多个图像

来自分类Dev

画布HTML5中绘制图像对象的限制区域

来自分类Dev

javascript在画布上绘制图像

来自分类Dev

在缩放的画布上绘制图像

来自分类Dev

在缩放的画布上绘制图像

来自分类Dev

访问画布上的绘制图像

来自分类Dev

HTML5画布:在单个画布上的范围内旋转裁剪的图像

来自分类Dev

在背景缩放上绘制HTML5画布

来自分类Dev

实时HTML5画布绘制

来自分类Dev

使用for循环绘制HTML5画布圆

来自分类Dev

HTML5画布图案绘制延迟

来自分类Dev

在背景缩放上绘制HTML5画布

来自分类Dev

连续绘制HTML5画布