canvas拖动图片
来源:互联网 发布:软件和信息技术服务 编辑:程序博客网 时间:2024/06/05 18:58
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/demo/base.css">
<meta charset="utf-8" />
<title>简单的HTML5 Canvas拖动效果 - HTML51.COM</title>
<script type="text/javascript">
var mainCanvas;
var mainCt;
var MAIN_CANVAS_WIDTH=680;
var MAIN_CANVAS_HEIGHT=560;
var currentRectX=100;
var currentRectY=100;
var startDragRectX=0;
var startDragRectY=0;
var startDragMouseX=0;
var startDragMouseY=0;
var RECT_WIDTH=100;
var RECT_HEIGHT=100;
function pageInit(){
mainCanvas=document.createElement("canvas");
mainCanvas.width=MAIN_CANVAS_WIDTH;
mainCanvas.height=MAIN_CANVAS_HEIGHT;
document.body.appendChild(mainCanvas);
mainCanvas.onmousedown=canvasMouseDownHandler;
mainCanvas.onmouseup=canvasMouseUpHandler;
mainCt=mainCanvas.getContext("2d");
redrawRect();
}
function canvasMouseDownHandler(event){
var canvasMouseX=event.layerX;
if(!canvasMouseX){
canvasMouseX=event.x;
}
var canvasMouseY=event.layerY;
if(!canvasMouseY){
canvasMouseY=event.y;
}
if(canvasMouseX>currentRectX&&canvasMouseX<currentRectX+RECT_WIDTH&&canvasMouseY>currentRectY&&canvasMouseY<currentRectY+RECT_HEIGHT){
mainCanvas.onmousemove=canvasMouseMoveHandler;
startDragMouseX=canvasMouseX;
startDragMouseY=canvasMouseY;
startDragRectX=currentRectX;
startDragRectY=currentRectY;
}
}
function canvasMouseMoveHandler(event){
var canvasMouseX=event.layerX;
if(!canvasMouseX){
canvasMouseX=event.x;
}
var canvasMouseY=event.layerY;
if(!canvasMouseY){
canvasMouseY=event.y;
}
currentRectX=startDragRectX+canvasMouseX-startDragMouseX;
currentRectY=startDragRectY+canvasMouseY-startDragMouseY;
redrawRect();
}
function canvasMouseUpHandler(event){
mainCanvas.onmousemove=null;
}
function redrawRect(){
mainCt.clearRect(0,0,MAIN_CANVAS_WIDTH,MAIN_CANVAS_HEIGHT);
mainCt.fillStyle="#0000FF";
mainCt.fillRect(currentRectX,currentRectY,RECT_WIDTH,RECT_HEIGHT);
}
</script>
</head>
<body onload="pageInit();">
<script src="/demo/page.js"></script>
</body>
</html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/demo/base.css">
<meta charset="utf-8" />
<title>简单的HTML5 Canvas拖动效果 - HTML51.COM</title>
<script type="text/javascript">
var mainCanvas;
var mainCt;
var MAIN_CANVAS_WIDTH=680;
var MAIN_CANVAS_HEIGHT=560;
var currentRectX=100;
var currentRectY=100;
var startDragRectX=0;
var startDragRectY=0;
var startDragMouseX=0;
var startDragMouseY=0;
var RECT_WIDTH=100;
var RECT_HEIGHT=100;
function pageInit(){
mainCanvas=document.createElement("canvas");
mainCanvas.width=MAIN_CANVAS_WIDTH;
mainCanvas.height=MAIN_CANVAS_HEIGHT;
document.body.appendChild(mainCanvas);
mainCanvas.onmousedown=canvasMouseDownHandler;
mainCanvas.onmouseup=canvasMouseUpHandler;
mainCt=mainCanvas.getContext("2d");
redrawRect();
}
function canvasMouseDownHandler(event){
var canvasMouseX=event.layerX;
if(!canvasMouseX){
canvasMouseX=event.x;
}
var canvasMouseY=event.layerY;
if(!canvasMouseY){
canvasMouseY=event.y;
}
if(canvasMouseX>currentRectX&&canvasMouseX<currentRectX+RECT_WIDTH&&canvasMouseY>currentRectY&&canvasMouseY<currentRectY+RECT_HEIGHT){
mainCanvas.onmousemove=canvasMouseMoveHandler;
startDragMouseX=canvasMouseX;
startDragMouseY=canvasMouseY;
startDragRectX=currentRectX;
startDragRectY=currentRectY;
}
}
function canvasMouseMoveHandler(event){
var canvasMouseX=event.layerX;
if(!canvasMouseX){
canvasMouseX=event.x;
}
var canvasMouseY=event.layerY;
if(!canvasMouseY){
canvasMouseY=event.y;
}
currentRectX=startDragRectX+canvasMouseX-startDragMouseX;
currentRectY=startDragRectY+canvasMouseY-startDragMouseY;
redrawRect();
}
function canvasMouseUpHandler(event){
mainCanvas.onmousemove=null;
}
function redrawRect(){
mainCt.clearRect(0,0,MAIN_CANVAS_WIDTH,MAIN_CANVAS_HEIGHT);
mainCt.fillStyle="#0000FF";
mainCt.fillRect(currentRectX,currentRectY,RECT_WIDTH,RECT_HEIGHT);
}
</script>
</head>
<body onload="pageInit();">
<script src="/demo/page.js"></script>
</body>
</html>
- canvas拖动图片
- 【转】Android 拖动Layout上的图片-非Canvas
- Canvas---Canvas图像处理、图片查看器、图像拖动实现、js面向对象编程
- Canvas---Canvas图像处理、图片查看器实现思路整理、拖动边界控制
- silverlight canvas 鼠标拖动canvas
- canvas 拖动效果
- Android 利用Canvas实现双指拖动和双指缩放图片
- Javascript canvas 拖动鼠标截图
- Android 利用Canvas实现双指拖动和双指缩放图片(二)-图片拖出边界检测
- 图片 随意拖动(java)
- 鼠标拖动图片-javascript
- picturebox图片拖动
- 随意拖动图片
- C# 鼠标拖动图片
- js 图片 拖动 复制
- android图片拖动Gallery
- 禁止图片拖动
- 拖动页面显示图片
- iOS打印Debug日志的方式
- MYSQL之性能优化
- poj 2608 soundx
- Interacting With Get and Post Methods in ASP.NET
- 禁止刷新
- canvas拖动图片
- 职场新人必修之苦逼初感悟
- 坚持就是胜利
- 对称加密算法中,des算法的密钥长度是多少,采用什么进行加密
- PowerDesigner使用经验--关联sqlserver 2005
- JDBC的事务
- hdu 3791
- 報價階層更新
- javascript 计算及倒计时 溫馨提示:登入成功後最少30秒才統計一次流覽數量,您已经登陆 "+minutes+" 分 "+seconds+" 秒