如何动态把canvas上的坐标传给drawImage,一点canvas上就能显示出来

 我来答
kd981407034
2017-08-18
知道答主
回答量:2
采纳率:0%
帮助的人:1890
展开全部
你可以捕捉到你点击是的位置,在减去cavans距离左上角的距离,就是你在cavans上的位置
追问
能给个demo吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lglong519
2017-08-20 · TA获得超过713个赞
知道小有建树答主
回答量:1110
采纳率:61%
帮助的人:463万
展开全部
//id改成你的id就行了
var can=document.getElementById("mycanvas");
var ctx=can.getContext("2d");
var img=new Image()
img.src="http://img2.imgtn.bdimg.com/it/u=3311902994,1296233337&fm=214&gp=0.jpg";
can.onclick=function(){
//获取点击的x,y坐标
var x=event.offsetX;
var y=event.offsetY;
ctx.clearRect(0,0,can.width,can.height);
ctx.drawImage(img,x,y);
}
更多追问追答
追问
这个我已经实现了,我现在是有多个canvas,是放在左边的,想把左边的canvas放到右边大的canvas上,而且左边的canvas还在,想当于用drawImage显示了一张在大的canvas上,问题是怎么获取左边canvas的id,和右边canvas上的x,y坐标。完整功能是点一下左边的canvas,在右边的canvas上放下。能解决我可以加分
追答
var cansId=null;
//先给左边canvas分别绑定onclick事件
//var cansLeft=document.getElementById("left");

cansLeft.onclick=function(){ //点击获取canvas id
cansId=this.id;
}
//先给右边canvas绑定onclick事件
var cansRight=document.getElementById("right");

cansRight.onclick=function(){
var ctx=cansRight.getContext("2d");
var cansLeft=document.getElementById(cansId);
var x=event.offsetX;
var y=event.offsetY;
ctx.clearRect(0,0,cansRight.width,cansRight.height);
ctx.drawImage(cansLeft, x, y,cansLeft.width,cansLeft.height);
}

如果左边的canvas包含在一个盒子里,只需要把onclick事件绑定到共同的父对象上

父对象.onclick=function(){
src=event.srcElement||event.target;
if(src.nodeName=="CANVAS"){
    cansId=src.id;
}
}

基本功能就这样了,其他细节自己再调节

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式