Html5 Canvas 拖拽效果

浏览量:395 | 分类:前端开发HTML5/JS | 发布日期:2011-10-13

Canvas拖拽效果


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 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);
}

上一篇: Mysql Limit 优化,百万至千万级快速分页 复合索引

下一篇: 基于Comet服务器推技术

评论

过客   2011-11-13 21:23:16