html Canvas 画图 能够选择并能移动
canvas 画图,能够选中所画的图片并且能够随意移动图片 <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript" src="JS/jquery.min.js"></script>
</head>
<body> <canvas id="myCanvas" width="500" height="400" style="border:1px solid #000000; background-color: #CCCCCC;"></canvas>
<input id="Button1" type="button" value="画矩形" onclick="DrawingRec()" />
<input id="Button2" type="button" value="画线" onclick="Drawline()"/>
<p></p>
</body>
</html> <script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var list = [];
var currentImag;
var ax, ay, x, y;
var startmove = false;
var c = document.getElementById("myCanvas");
c.onmousedown = function (e) { for (var i = 0; i < list.length; i++) {
var w = list[i].x + list[i].width;
var h = list[i].y + list[i].height;
if (e.clientX < w && e.clientX > list[i].x && e.clientY < h && e.clientY > list[i].y) {
currentImag = list[i];
startmove = true;
console.log("select: true");
} } };
c.onmousemove = function (e) {
console.log("x:" + e.pageX + " y:" + e.pageY);
if (currentImag == null) return;
console.log("moveselect:true"); x = e.clientX;
y = e.clientY; //限制移动不能超出画布
(x < 40) ? ax = 20 : ax = 480;
(y < 40) ? ay = 20 : ay = 380; (x < 480 && x > 20) ? x = e.clientX : x = ax;
(y < 380 && y > 20) ? y = e.clientY : y = ay; //清除之前图片然后重新绘制
ctx.clearRect(0, 0, c.width, c.height);
currentImag.x = x;
currentImag.y = y; Piant();
ctx.drawImage(currentImag, x - 20, y - 20, currentImag.width, currentImag.height); }; c.onmouseup = function () {
//c.onmousemove = null;
//c.onmouseup = null; currentImag = null;
startmove = false;
};
function Piant()
{
if (startmove)
{
for (var i = 0; i < list.length; i++)
{
ctx.drawImage(list[i], list[i].x - 20, list[i].y - 20, list[i].width, list[i].height);
}
}
} function DrawingRec()
{
//ctx.beginPath();
//ctx.fillStyle = "#000000";
//ctx.fillRect(200, 100, 150, 75);
//ctx.closePath(); var img = new Image();
img.src = "default/images/panel_tools.png";
img.x = 50;
img.y = 50;
img.width = 40;
img.height = 40;
ctx.drawImage(img, 50, 50, img.width, img.height); list.push(img);
}
</script>
html Canvas 画图 能够选择并能移动的更多相关文章
- html5之canvas画图基础
HTML5+CSS3的好处是,你可以编写一个页面分别用于不同的平台,只需要设置不同的css样式就可以了,现在基本主流浏览器都支持全新的HTML5和CSS3,因为它的跨平台开发.因为是原生代码所以它的页 ...
- Canvas画图在360浏览器中跑偏的问题
问题描述,canvas画图的js代码中编写的是画正方形的代码,结果在360浏览器上变成了长方形,不知道怎么回事,请问各位大神是否遇到过此类问题? <!DOCTYPE html> <h ...
- h5 canvas 画图
h5 canvas 画图 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- html5 Canvas画图3:1px线条模糊问题
点击查看原文地址: html5 Canvas画图3:1px线条模糊问题 本文属于<html5 Canvas画图系列教程> 接上一篇canvas画线条教程 上次我们讲到,canvas有时候会 ...
- 使用 canvas 画图时图像文字模糊的解决办法
最近在使用 canvas 画图的时候,遇到了图像文字模糊的问题,解决思路就是根据分辨率创建不同尺寸的画布.以下是创建高分辨率画布的代码: /** * 创建高分辨率画布 * @param w 画布宽 * ...
- html5 canvas 画图移动端出现锯齿毛边的解决方法
使用HTML5的canvas元素画出来的.在移动端手机上测试都发现画图有一点锯齿问题 出现这个问题的原因应该是手机的宽是720像素的, 而这个canvas是按照小于720像素画出来的, 所以在720像 ...
- HTML5 canvas画图
HTML5 canvas画图 HTML5 <canvas> 标签用于绘制图像(通过脚本,通常是 JavaScript).不过,<canvas> 元素本身并没有绘制能力(它仅仅是 ...
- HTML5 Canvas画图与动画学习59例
HTML5 Canvas画图与动画学习59例 学习HTML5 动画,画图的好资料. HTML5 Canvas画图与动画学习59例
- 毕业设计总结(1)-canvas画图
去年6月底完成的毕业设计,到现在也才开始给它做个总结,里面有很多可以学习和借鉴的东西. 我的毕业设计的题目是“一种路径规划算法的改进与设计”,具体的要求可参见下面的表格: 题目 一种路径规划算法的改进 ...
随机推荐
- 小程序本作用域下怎么调用全局js
本地wxml文件 <view>app版本:{{version}}</view> 本地js文件 var app; Page({data:{ }, onLoad:function( ...
- springcloud(九) springboot Actuator + admin 监控
前一章讲的都是Feign项目(调用方)的监控.接下来讲的是服务提供方的监控 一.springboot actuator + springboot admin Spring Boot Admin 是一个 ...
- python 简单爬虫获取气象数据发送气象定时报-预报预警信息及时推送及阿里云短信群发接口
!/usr/bin/python #encoding=utf-8 #Author:Ruiy #//////////////////////////////////////////////////// ...
- python实现socket上传下载文件-进度条显示
在python的socket编程中,可以实现上传下载文件,并且在下载的时候,显示进度条,具体的流程如下图所示: 1. 服务器端代码如下: [root@python 519]# cat server.p ...
- Rhythmk 一步一步学 JAVA (22) JAVA 网络编程
1.获取主机信息 @Test public void GetDomainInfo() throws UnknownHostException { String domain = "www.b ...
- 34.TokenInterceptor防止表单重复提交
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 由于某些原因,用户在进行类似表单提交的操作后,以为表单未被提交,会进行多次的 ...
- 【Git】四、Git工作
一.Git创建仓库 版本库:代码仓库(repository),可以理解为一个项目的目录,在这个项目的目录中Git对每个文件进行管理,记录每个文件的增删改查记录,并能够追踪历史,在需要的时候可以回退到某 ...
- Selection II
[Selection II] 1.上.下.左.右键可以移动Selection 1个像素.按住Shift键,可以一次移动10个像素. 2.Add Selection模式的快捷键是Shift,Sub Se ...
- Shader.WarmupAllShaders
[Shader.WarmupAllShaders]
- 判断viewpager左右滑动方向
实现思路就是通过viewpager的滑动监听,用参数position进行比较,同时当判断完这个要把比较的positon覆盖.这里简单介绍一下public void onPageScrolled(int ...