canvas特效代碼詳解(2)

?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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282009.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282009.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282009.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云三維可視化使用初體驗

title: 阿里云三維可視化使用初體驗tags: 物聯網開發BIMcategories:物聯網本文主要的目標是使用阿里云的云產品 - 物聯網套件三維可視化 開始 準備工作 進入下載頁面下載頁面&#xff0c;點擊“模型編輯器下載”安裝模型編輯器下載安裝完畢&#xff0c;啟動模型編輯器下載&…

同時綁定onpropertychange 和 oninput 事件,實時檢測 input、textarea輸入改變事件,支持低版本IE,支持復制粘貼...

實時檢測 input、textarea輸入改變事件&#xff0c;支持低版本IE&#xff0c;支持復制粘貼 檢測input、textarea輸入改變事件有以下幾種&#xff1a; 1、onkeyup/onkeydown 捕獲用戶鍵盤輸入事件。缺陷&#xff1a;復制粘貼時無法檢測2、onchenge缺陷&#xff1a;要滿足觸發條件…

hp laser103 屬性沒有配置項_(常見解決方法)UEditor報錯“后端配置項沒有正常加載,上傳插件不能正常使用”...

&#xff08;常見解決方法&#xff09;UEditor報錯“后端配置項沒有正常加載&#xff0c;上傳插件不能正常使用”_向來蕭瑟也無畏-CSDN博客?blog.csdn.net報錯信息詳見此文的“排錯過程&&錯誤信息”→ueditor無法上傳圖片_向來蕭瑟也無畏-CSDN博客3種解決方法1.大小寫…

WinForm(十二)畫圖

在.NET中&#xff0c;畫圖主要是通過Graphics類實現的&#xff0c;這個類主要通過兩類方法完成畫圖&#xff0c;一類是DrawXXX&#xff0c;畫各種線條圖形&#xff1b;另一類是FillXXX,用各種形狀&#xff0c;填充各種圖形。Graphics是畫板&#xff0c;Draw各個方法是各種盞筆&…

從4個方面簡單介紹SaaS

你了解什么是SaaS嗎&#xff1f;SaaS有什么優勢&#xff1f;選擇SaaS平臺要注意哪些要素&#xff1f;在這里&#xff0c;怡海軟件將針對這些問題進行簡單介紹&#xff1a; 什么是SaaS&#xff1f;SaaS是Software-as-a-Service&#xff08;軟件即服務&#xff09;的簡稱&#xf…

騰訊的一筆畫游戲--巧妙解法

根據這個圖形我們可以發現圖中的規律。 所有數據的和 所有邊長的和-最后一個形狀的一個邊-除最后一個邊之外所有邊的一半。 知道了這個規律后我們就很容易去實現代碼了&#xff1a; 這里的解決關鍵點為——“余弦定理”&#xff0c;因為角度我們可以用&#xff08;n-2&#xf…

Map value類型不同的寫法

Map value類型不同的寫法 Map<String, Object> accountMapnew HashMap<String, Object>(); int userId data.get("userId").getAsInt(); int accType data.get("accType").getAsInt();String name data.get("accType").getAsStr…

mysql中局部變量說法正確的是_mysql全局變量和局部變量

全局變量和局部變量在服務器啟動時&#xff0c;會將每個全局變量初始化為其默認值(可以通過命令行或選項文件中指定的選項更改這些默認值)。然后服務器還為每個連接的客戶端維護一組會話變量&#xff0c;客戶端的會話變量在連接時使用相應全局變量的當前值初始化。舉一個例子&a…

Web應用架構-Full-text Search Service

Elasticsearch轉載于:https://www.cnblogs.com/zhitianji/p/9728016.html

終于找到你!如何將前端console.log的日志保存成文件?

本篇文章來自一個需求&#xff0c;前端websocket會收到各種消息&#xff0c;但是調試的時候&#xff0c;我希望把websoekt推送過來的消息都保存到一個文件里&#xff0c;如果出問題的時候&#xff0c;我可以把這些消息的日志文件提交給后端開發區分析錯誤。但是在瀏覽器里&…

基于 .NET 6 開發的開源遠程終端工具

你好&#xff0c;這里是 Dotnet 工具箱&#xff0c;定期分享 Dotnet 有趣&#xff0c;有用的工具&#xff0c;不要忘記關注。今天介紹一個非常實用的工具 mRemoteNG&#xff0c;這是一個基于 .NET 6 開發的遠程終端軟件&#xff0c;開源免費&#xff0c;不用擔心版權和軟件費用…

mysql 行列轉換 動態_mysql 行列動態轉換的實現(列聯表,交叉表)

(1)動態&#xff0c;適用于列不確定情況create table table_name(id int primary key,col1 char(2),col2 char(2),col3 int);insert into table_name values(1 ,A1,B1,9),(2 ,A2,B1,7),(3 ,A3,B1,4),(4 ,A4,B1,2),(5 ,A1,B2,2),(6 ,A2,B2,9),(7 ,A3,B2,8),(8 ,A4,B2,5),(9 ,A1,…

第六次作業—例行報告

本周PSP 進度條 代碼累計折線圖 博文累計折線圖 本周餅狀圖 轉載于:https://www.cnblogs.com/zej87/p/7738895.html

Tomcat7/8開啟WebDAV的支持

WebDAV是一種超文本傳輸協議&#xff0c;Tomcat默認是支持WebDAV的&#xff0c;且默認為禁用狀態。 更多詳細信息&#xff0c;請參考&#xff1a; https://zh.wikipedia.org/wiki/WebDAV http://www.webdav.org/ 開啟步驟如下&#xff1a; 1、在Tomcat的webapps目錄下新建webda…

算法復雜度分析(下)

前一篇文章算法復雜度分析&#xff08;上&#xff09;講述了復雜度的大 O 表示法和幾個分析原則&#xff0c;這篇文章我們來講講另外幾種復雜度&#xff0c;最好情況時間復雜度&#xff08;best case time complexity&#xff09;、最壞情況時間復雜度&#xff08;worst case t…

免費分享一些.NET Core比較優秀的社區資料和微軟官方資料

這次小編所分享的這套筆記手冊&#xff0c;主要是分享一些.NET Core比較優秀的社區資料和微軟官方資料。已經把所有的重要知識點進行了完整的歸類和整理&#xff0c;可以讓大家更清晰和快速的學習.NET Core&#xff0c;不浪費任何多余的時間&#xff01;全網首發&#xff01;相…

python異或運算怎么算_小強學Python+OpenCV之-1.4.4掩膜mask及位運算(與、或、非、異或)...

問題引入在小強學PythonOpenCV之&#xff0d;1.4.2裁剪一節&#xff0c;我們使用的是numpy數組切片功能實現圖片區域的裁剪。那么&#xff0c;如果我們想要裁剪圖像中任意形狀的區域時&#xff0c;應該怎么辦呢&#xff1f;答案是&#xff0c;使用掩膜(masking)。但是這一節我們…

51 Nod 1670 打怪獸

1670 打怪獸lyk在玩一個叫做“打怪獸”的游戲。游戲的規則是這樣的。lyk一開始會有一個初始的能量值。每次遇到一個怪獸&#xff0c;若lyk的能量值>怪獸的能量值&#xff0c;那么怪獸將會被打敗&#xff0c;lyk的能量值增加1&#xff0c;否則lyk死亡&#xff0c;游戲結束。若…

QQ協議調試器 QQDebugger

QQ協議老變&#xff0c;為了分析協議&#xff0c;單用抓包工具還是不夠的&#xff0c;還是得需要很好的調試工具。在網上找了幾個調試工具&#xff0c;易用性均欠佳&#xff0c;不得已自己開發了一個 QQDebugger&#xff0c;不敢專美&#xff0c;特意發布出來。QQDebugger 在功…

PostgreSQL 10.1 手冊_部分 II. SQL 語言_第 5 章 數據定義_5.5. 修改表

5.5. 修改表 5.5.1. 增加列5.5.2. 移除列5.5.3. 增加約束5.5.4. 移除約束5.5.5. 更改列的默認值5.5.6. 修改列的數據類型5.5.7. 重命名列5.5.8. 重命名表當我們已經創建了一個表并意識到犯了一個錯誤或者應用需求發生改變時&#xff0c;我們可以移除表并重新創建它。但如果表中…