HTML5 -canvas拖拽、移动 绘制图片可操作移动,拖动
关于canvas 的基础知识就不多说了,可以进这个网址学习
http://www.w3school.com.cn/html5/html_5_canvas.asp
对于canvas 和 SVG 其实一开始个人是比较倾向于SVG多一点,不过后来工作需要,又学习了下canvas,
这两个之间主要不同是 canvas是在JavaScript中绘制,SVG则是在 XML 绘制
其实canvas 主要的工作就是绘制图像,图表之类的工作,对于一些可操作的特效个人还是更喜欢用canvas + div 来实现;
如果不是特别难的需求能做到尽量做<( ̄︶ ̄)↗[GO!]
列出一个demo 这个主要功能就是canvas 内图片拖拽
(想要拖拽什么可以直接更换JavaScript 中第3、4、5句);
说是拖拽,但也只是目测看起是 “像”是,其实在每次鼠标移动的时候都会先清掉之前画好的,再在鼠标所在的位置重新绘制一个,全套demo如下:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 body,div{ 8 margin:0; 9 padding:0; 10 } 11 #d1{ 12 width:500px; 13 height: 400px; 14 border: 2px solid #00FFD1; 15 } 16 </style> 17 </head> 18 <body> 19 20 21 <div id="d1"> 22 <canvas id="myCanvas" width="500" height="400"> 23 <p>您的系统不支持此程序!</p> 24 </canvas> 25 </div> 26 27 <script> 28 const canva=document.getElementById("myCanvas"); 29 const cansText=canva.getContext("2d"); 30 31 let img = new Image(); 32 img.src="http://www.w3school.com.cn/i/ct_html5_canvas_circle.gif"; 33 cansText.drawImage(img,50,50,150,100); 34 //在事件外声明需要用到的变量 35 let ax,ay,x,y; 36 37 canva.οnmοusedοwn=function (e) { 38 39 canva.onmousemove = function(e){ 40 x= e.clientX;y=e.clientY; 41 42 //限制移动不能超出画布 43 (x<173)? ax=75 : ax=425; 44 (y<148)? ay=50 : ay=350; 45 46 (x < 425 && x >75)? x =e.clientX : x =ax; 47 48 (y > 50 && y <350) ? y=e.clientY : y=ay; 49 50 //先清除之前的然后重新绘制 51 cansText.clearRect(0,0,canva.width,canva.height); 52 53 cansText.drawImage(img,x-75,y-50,150,100); 54 }; 55 56 canva.onmouseup = function(){ 57 canva.onmousemove = null; 58 canva.onmouseup = null; 59 }; 60 } 61 62 </script> 63 </body> 64 </html>
补充:点击图片非中心移动时,会自动跳动到,图片以当前光标为中心
原链:https://blog.csdn.net/freedomVenly/article/details/79042536
转载于:https://www.cnblogs.com/7qin/p/9615406.html
HTML5 -canvas拖拽、移动 绘制图片可操作移动,拖动相关推荐
- HTML5 -canvas拖拽、移动 绘制图片可操作移动,拖动
关于canvas 的基础知识就不多说了,可以进这个网址学习 http://www.w3school.com.cn/html5/html_5_canvas.asp 对于canvas 和 SVG 其实一开 ...
- html5限制拖拽区域怎么实现,html5怎么实现拖拽
html5实现拖拽的方法:首先新建一个空的HTML5结构:然后在body元素中放置一个div:最后通过allowDrop,drag和drop三个函数实现拖拽功能即可. 本文操作环境:Windows7系 ...
- 拖拽删除元素、拖拽排序、拖拽预览图片和拖拽移动元素
介绍 HTML5 提供了专门的拖拽与拖放的 API,目前各浏览器都已支持,包括 IE.HTML 拖放(Drag and Drop)接口使应用程序能够在浏览器中使用拖放功能.例如,用户可使用鼠标选择可拖 ...
- html5 canvas手写画板 下载图片至本地
html5 canvas手写画板 下载图片至本地 <!DOCTYPE html> <html><head><meta charset="utf-8& ...
- 前端画圆弧html弧线的像素,[js高手之路] html5 canvas系列教程 - arc绘制曲线图形(曲线,弧线,圆形)...
arc:画弧度 cxt.arc( x, y, 半径, 开始角度,结束角度,是否逆时针 ); x, y: 为弧度的中心横坐标和纵坐标,如果这是画一个圆.那么x,y就是圆的圆心. 开始角度与结束角度都是以 ...
- php网页画线,HTML5 canvas基本绘图之绘制线条
是HTML5中新增的标签,用于绘制图形,这篇文章主要为大家详细介绍了HTML5 canvas基本绘图之绘制线条方法,感兴趣的小伙伴们可以参考一下 是HTML5中新增的标签,用于绘制图形,实际上,这个标 ...
- Android 7.0 分屏拖拽文字和图片的研究
一 前提 二 实测一 三 实测二 四 分析 1 分屏拖拽实现分析-Activity间 ViewstartDragAndDrop 实现拖拽图片的例子 2 拖拽实现分析-Activity内 一. 前提 1 ...
- HTML5原生拖拽/拖放 Drag Drop 详解
转载自:juejin.im/post/5a169d- 前言 拖放(drap && drop)在我们平时的工作中,经常遇到.它表示:抓取对象以后拖放到另一个位置.目前,它是HTML5标准 ...
- HTML5原生拖拽/拖放(drag drop)详解
前言 拖放(drap && drop)在我们平时的工作中,经常遇到.它表示:抓取对象以后拖放到另一个位置.目前,它是HTML5标准的一部分.我从几个方面学习并实践这个功能. 拖放的流程 ...
最新文章
- Linux System Programming --Chapter Five
- Flash as3 以鼠标点为中心缩放效果
- 《一江春水向东流》——任正非
- 实时远程医学影像服务质量保障与网络优化
- like效率 regexp_Oracle 中like效率 正则表达式 浅析
- tomcat配置多站点
- IE11浏览器一个窗口打开多个页面设置方法
- AppDelegate 方法介绍
- Python求梅森尼数
- python编写米字格的步骤_2分钟学会在Word中制作田字格 米字格 书法练字再也不用买本子了...
- windows下cmd 查找/关闭端口
- KALI安装软件链接不上源,数字签名软件保护,Kali Linux 更新源 数字签名无效处理
- Towards Playing Full MOBA Games with Deep Reinforcement Learning翻译
- 打字教程新手篇-指法练习的重要性和注意事项
- 无人机组装调试步骤(保姆级别教程)
- Java与Unix时间戳的相互转换
- 零售转型之战,“富二代”平安银行胜算如何?
- 全要素分析与问题解决:以人为本,主次分明
- 安装Office2010提示需要安装MSXML版本6.10.1129.0的解决方法,超简单,亲测可用
- C++数据库编程 MySQL Connecttor C++增删改查
热门文章
- 马里兰大学calce电池循环测试数据集_Nature系列/Joule/Angew/EES超强盘点:水体系电池10大热点论文及发文趋势...
- python求高阶导数_python – TensorFlow:计算Hessian矩阵(和更高阶导数)
- 为确保网络中不同计算机,在计算机网络中,为确保网络中不同计算机之间能正确地传送和接收数据,它们必须遵循一组共同的规则和约定。这些规则、约定或标准通常被称为____。...
- Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
- Exception处理
- ThreadLocalConnection
- mapxtreme java 版本分布式部署。自己的应用和mapxtreme渲染器不在同一台机器上
- 利用哈希map快速判断两个数组的交集
- OpenBSD 现已支持 USB 3.0
- iOS开发 - 利用js去除webview广告