canvas是一个就基于像素的画图h5元素。

利用canvas做一个如下描述所示的动态图形:当鼠标点下去时开始绘图,在鼠标结束时完成一个矩形,当再一次点击时重复第一次的绘图步骤。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style type="text/css">
 7             canvas{
 8                 border: 1px solid #000;
 9             }
10         </style>
11     </head>
12     <body>
13         <canvas id="canvas" width="400" height="400"></canvas>
14         <script type="text/javascript">
15             var canvas = document.getElementById("canvas");
16             var context = canvas.getContext("2d");
17 //            当鼠标点击时执行的函数
18             canvas.οnmοusedοwn=()=>{
19 //                得到鼠标在canvas上的位置
20                 var x = event.clientX - canvas.offsetLeft;
21                 var y = event.clientY - canvas.offsetTop;
22                 var x1 = 0;
23                 var y1 = 0;
24 //                当鼠标移动时
25                 document.onmousemove = () =>{
26 //                    清除原来的矩形
27                     context.clearRect(0,0,canvas.width,canvas.height);
28 //                    得到鼠标绘制结束时矩形的位置
29                     x1 = event.clientX - canvas.offsetLeft;
30                     y1 = event.clientY - canvas.offsetTop;
31 //                    鼠标完成绘制时的矩形的宽和高
32                     context.strokeRect(x,y,(x1-x),(y1-y));
33                 }
34 //                鼠标离开后
35                 document.onmouseup = ()=>{
36                     document.onmousemove = null;
37                     document.ommousedown = null;
38                 }
39             }
40         </script>
41     </body>
42 </html>

效果图,可在规定的矩形内绘制任何宽高的矩形

转载于:https://www.cnblogs.com/flyingLcode/p/7731908.html

canvas特效代码详解(2)相关推荐

  1. android生命周期_Android开发 View的生命周期结合代码详解

    咱们以TextView控件为例: /** * Created by SunshineBoy on 2020/9/23. */ public class TestTextView extends and ...

  2. 【Unity3D-UGUI系列】(一)Canvas 画布组件详解

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875   大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉 ...

  3. 自定义View之Canvas(画布)的详解

    接下来学习一下自定义View之Canvas(画布)的详解 先来看看Canvas常用方法: 功能分类 Canvas常用方法 备注 绘制颜色 drawARGB 通过设置ARGB值绘制颜色 drawRGB ...

  4. java canvas详解_HTML5的canvas绘图技术详解

    原标题:HTML5的canvas绘图技术详解 本篇教程探讨了HTML5的canvas绘图技术详解,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < canvas ...

  5. 【CV】Pytorch一小时入门教程-代码详解

    目录 一.关键部分代码分解 1.定义网络 2.损失函数(代价函数) 3.更新权值 二.训练完整的分类器 1.数据处理 2. 训练模型(代码详解) CPU训练 GPU训练 CPU版本与GPU版本代码区别 ...

  6. html5代码转换为视频,HTML5中的视频代码详解

    摘要 腾兴网为您分享:HTML5中的视频代码详解,智学网,云闪付,易推广,小红书等软件知识,以及360win10,流量魔盒,fitbit,上港商城,安卓2.3.7,全民惠,五年级下册英语单词表图片,t ...

  7. js php base64,JavaScript实现Base64编码与解码的代码详解

    本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...

  8. yii mysql 事务处理_Yii2中事务的使用实例代码详解

    前言 一般我们做业务逻辑,都不会仅仅关联一个数据表,所以,会面临事务问题. 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全 ...

  9. canvas arcTo()用法详解 – CodePlayer

    canvas arcTo()用法详解 – CodePlayer canvas arcTo()用法详解

最新文章

  1. ios mysql 修改数据,iOS数据库FMDB--增删改查(模糊查询)实写记录
  2. linux 安装redis2.8.3,centos7下安装Redis2.8版本步骤
  3. 几个关于tableView的问题解决方式整合
  4. Chrome Elements 标签页 和 View Source 的显示为什么有差异
  5. Taro+react开发(41)封装组件2
  6. 数博会重磅活动:第三届大数据科学与工程国际会议日程
  7. 跳槽了,但是面试官问的总答不到点上……
  8. SpringBoot AOP 理解和用途
  9. 编写高质量代码改善C#程序的157个建议——建议30:使用LINQ取代集合中的比较器和迭代器...
  10. SpringBoot-Dubbo入门教程
  11. onload事件_图像onLoad事件+ Internet ExplorerJavaScript问题
  12. XeCJK 使用系统字体
  13. 前端接收pdf文件_前端利用pdfobject.js处理pdf文件
  14. 计算机毕业设计PHP图书馆图书借阅管理系统
  15. Window环境MatConvNet安装
  16. python什么为假_Python返回真假值(True or False)小技巧
  17. 消息队列RabbitMQ基本使用(Java代码实现)
  18. 离散型随机变量-Discrete Random Variables
  19. 28、完美的RestApi
  20. java数组查找奇数_java – 在数组中对偶数和奇数进行排序

热门文章

  1. 求一列数据中的波峰_PowerQuery:横向/纵向追加数据
  2. 解决crontab 定时任务加载失败
  3. 不越狱换壁纸_终于来了!iOS 14.3 正式版,可自动定时换壁纸
  4. wamp php文件怎么创建数据库,phpmyadmin怎么创建数据库
  5. jspwiki mysql_Wiki.js初体验
  6. 互联网公司忽悠员工的黑话,套路太深了。。。
  7. 硬件:选购CPU和显卡需了解的参数,TDP、SDP、ACP、GCP、TBP是什么?
  8. Linux进程终止命令kill或killall​笔记
  9. 【收集】几款浏览器兼容性测试工具
  10. mysql kill_Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)