用canvas实现点击拖拉生成框

借鉴于:https://www.cnblogs.com/sapho/p/6202898.html
插件:JCanvasjquery-uijquery
主要使用有点击拖拽生成矩形框,可拖拉(上下左右),可拉伸(右下角),可移动(左上角),可点击拖拽canvas画布。由于时间原因未实现点击拖拽过程中拉动canvas画布。(图片大小和canvas宽高一致)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>鼠标拖动绘制矩形框(canvas)</title>
</head>
<body>

<button id="cexiao">撤销</button>
<button id="qingkong">清空</button>
<button id="tuodong">拖动</button>
<button id="quxiaotuodong">取消拖动</button>
<div style="width:500px;height: 500px;overflow: hidden;" class="y-header">
	<canvas id="canvas" width="1366" height="768" style="border: 1px solid #000;"></canvas>
</div>
<script src="js/jquery.min.js"></script>
<script src="js/jcanvas.min.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js" ></script>
<script>
	var canvasId = 'canvas';//表示操作的canvas的id
	var penColor = 'blue';//表示画笔颜色
	var penWidth = 2;//表示画笔粗值
	var penDarw = '0';//-1表示拖拽画布,
	var determine = 2; //表示拖拽框时候允许的边框判定误差 2px
	var staticName = "block"
	
    var layerNum=0;
	var layerList = [];//画布上存储对象的集合
	var canvas=null;//画布对象
	
	var sign = 0;//0 无动作;1 表示画框动作;2 表示左框动作;3 表示右框动作,4 表示上框动作;5 表示下框动作;6 表示左上角可移动框;7 右下角拉伸
	var follow = 0;// 0 表示无点击/释放;1 表示点击canvas;
	
	var layerObj = null;//表示当前被点击的框
	var drawObj = null;//表示最后一次被绘画的框
	
    var CanvasExt = {
    	//监听行为。
        drawRect:function(penColor,strokeWidth){
            var that=this;
            canvas = document.getElementById(canvasId);
            //canvas 的矩形框 画布
            CanvasExt.drawImg();
            var canvasRect = canvas.getBoundingClientRect();
            canvasLeft = canvasRect.left;
            canvasTop  = canvasRect.top;
            //画笔的颜色和粗细
            that.penColor=penColor;
            that.penWidth=strokeWidth;
            //矩形框的左上角坐标
            var layerName="";
            var clickx=0;//鼠标点击那一瞬间的x
            var clicky=0;//鼠标点击那一瞬间的y
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值