HTML5 Canvas 繪圖方法整理 【十五、Canvas頁面互動: 滑鼠事件 】
在Canvas中 滑鼠事件分為以下三種:
1、滑鼠按下 : mousedown
2、滑鼠鬆開 : mouseup;
3、滑鼠移動 : mousemove
一般需要用到與滑鼠有關係的互動 都離不開這三種,例如常用的拖拽、移動、獲取當前位置資訊等;
不過這裡需要知道是的,Canvas 的一些複雜操作都是JavaScript的語法,利用JS來實現的功能,並不是Canvas 自己本身的。
舉一個簡單的例子:
獲取滑鼠按下時的座標點:
<script> window.onload=function(){ let cans = document.getElementById("myCanvas"); let ctx = cans.getContext("2d"); let mouse=tools.getMouse(cans); cans.addEventListener("mousedown",function(){ console.log("當前座標為:"+mouse.x+ ","+mouse.y); },false); } </script>
效果圖:
之前的程式碼引入了一個tool.js 的一個檔案,裡面程式碼屬於JavaScript範疇,在這裡就不多解釋了,直接複製過來:
function addEvent(obj,type,handle){ try{ // Chrome、FireFox、Opera、Safari、IE9.0及其以上版本 obj.addEventListener(type,handle,false); }catch(e){ try{ // IE8.0及其以下版本 obj.attachEvent('on' + type,handle); }catch(e){ // 早期瀏覽器 obj['on' + type] = handle; } } } window.tools={}; window.tools.getMouse=function(element){ var mouse={x:0,y:0}; addEvent(element,"mousemove",function(e){ var x, y; var e= e || window.event; if(e.pageX || e.pageY){ //相容做到ie9 x=e.pageX; y=e.pageY; }else{ x=e.clientX+document.body.scrollLeft || document.documentElement.scrollLeft; y=e.clientY+document.body.scrollTop || document.documentElement.scrollTop; } x-=element.offsetLeft; y-=element.offsetTop; mouse.x=x; mouse.y=y; }); return mouse; };
相關推薦
HTML5 Canvas 繪圖方法整理 【十五、Canvas頁面互動: 滑鼠事件 】
在Canvas中 滑鼠事件分為以下三種: 1、滑鼠按下 : mousedown 2、滑鼠鬆開 : mouseup; 3、滑鼠移動 : mousemove 一般需要用到與滑鼠有關係的互動 都離不開這三種,例如常用的拖拽、移動、獲取當前位置資訊等; 不過這裡需要知
HTML5 Canvas 開發 繪圖方法整理 【四、canvas曲線圖形 / 圓形】
其實在Canvas 中的基本圖形就只有兩個 : 直線圖形 和 曲線圖形 。 圓形也算是在曲線圖形中,一般畫圓的時候必須配套使用 beginPath() 和 closePath(),圓形屬於一個“閉合圖形”,先在畫布上開闢一個路徑,畫完以後結束路徑。 語法
HTML5 Canvas 開發 繪圖方法整理 【二、canvas直線 & canvas矩形】
開始繪製圖形之前有一點需要說一下,Canvas 採用的座標系是W3C的座標系 : X軸 正方向 向右; Y軸 正方向 向下; 所有的繪製方向都以這個為準。 Canvas 左上角的座標是 X :0 ; Y : 0
十五、匿名函數:lambda
數量 一個 () 匿名函數 使用 內存地址 返回 n) fun lambda關鍵字用於創建匿名函數,lambda函數能接收任意數量參數,只能返回一個表達式的值 lambda自帶返回值 用一次就清除 普通函數 def fooo(): return x**2 pr
十五、Go基礎程式設計:複合型別—陣列
概述 陣列是指一系列同一型別資料的集合。陣列中包含的每個資料被稱為陣列元素(element),一個數組包含的元素個數被稱為陣列的長度。 陣列⻓度必須是常量,且是型別的組成部分。 [2]int 和 [3]int 是不同型別 var n int = 10 var a [n]i
十五、Oracle學習筆記:序列(用於表字段值自增)
一、序列 1.序列是資料庫中為資料表提供的可以自動生成的唯一數值, 通常用來給主鍵欄位賦值。可以遞增或者遞減。作為主鍵的欄位,通常不人為賦值,需要使用序列自動生成的值。 2.序列關鍵字 sequence 序列和表一樣,都是資料庫中的物件。通常序列為一張表提供主鍵值。
十五、1檔案的相關操作:開啟檔案的方法、關閉檔案、【write()、read()】、檔案備份的流程小例子、readlines、readline
一、開啟方式 在python,使用open函式,可以開啟一個已經存在的檔案,或者建立一個新檔案。 open(檔名,訪問模式) ——以只讀的方式開啟test.txt檔案 在面向物件oop語言中把【函式名()】這種形式我們叫做【方法】。 (1)文字檔
Java實用方法整理(十七)——File類常用方法總結
一,建立功能 1,public boolean createNewFile() throws IOException 建立新檔案 2,public boolean mkdirs() 建立新的目錄,若父目錄不存在,會自動建立 3,public boolean
文獻筆記【十五】
一:基本資訊 標題:基於UML的圖書管理系統建模 時間:2017 出版源:西華師範大學 文獻分類:文獻筆記 二:研究背景 隨著資訊科技的快速發展,圖書館的資訊化建設越顯重要。圖書管理系統能夠滿足讀者快捷、方便的對讀書進行查詢、借閱、歸還等需求,還具有可靠性高、安全性好、儲存量大,節約成本等特點。基於U
Java實用方法整理(十八)——遞迴
1,遞迴方法注意事項 (1)遞迴一定要有出口,否則就是死遞迴 (2)遞迴的次數不能太多,否則就記憶體溢位 (3)構造方法不能遞迴使用 2,遞迴方法建立技巧 (1)遞迴是一個方法 (2)方法中要有出口(例如:return,輸出命令等) (3)尋找規律,以程式碼實現
【十五】Spark Streaming整合Kafka使用Direct方式(使用Scala語言)
官網介紹 Kafka提供了新的consumer api 在0.8版本和0.10版本之間。0.8的整合是相容0.9和0.10的。但是0.10的整合不相容以前的版本。 這裡使用的整合是spark-streaming-kafka-0-8。官方文件 配置SparkStrea
一張圖看懂阿里雲網絡產品【十五】IPv6 解決方案
摘要: 作為國內首家全面支援IPv6的雲廠商,阿里雲12月再次推出全棧IPv6解決方案,核心產品已全面支援,協助客戶小時/天級即可完成IPv6 訪問。方案成功歷經優酷、淘寶、天貓、雙十一考驗。SLB IPv6 月流量5 個月達到20000 GB,增長200 倍;CDN IPv6 日訪問量1
【H.264/AVC視訊編解碼技術詳解】十五、H.264的變換編碼(二):H.264整數變換和量化的實現
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼
【cocos2d-js官方文件】十五、cc.sys
概述 將原來的cc.Browser以及sys合併。 下面是api改造情況: //左側是新api,右側是舊api //常量 cc.sys.LANGUAGE_ENGLISH <-- cc.LANGUAGE_ENGLISH cc.sys.LANGUA
Java實用方法整理(十九)——IO流之InputStream、OutputStream
1,IO流概述 (1)描述 IO流是java程式用來進行裝置間的資料傳輸問題 (2)IO流分類 1)位元組流:當用windows記事本開啟待傳輸檔案時,是亂碼形式,此時用位元組流進行檔案傳輸。當然,如果你不知道檔案內容到底是啥,就完全可以用位元組流傳輸檔案,它是萬能的
【OpenCV影象處理】二十五、角點檢測
部落格參考 朱偉 等編著的《OpenCV影象處理程式設計例項》 ====================================================================================== 在很多應用場景中,影象畫素區域的興趣
【OpenCV影象處理】十五、影象空域濾波(上)
1.空域濾波介紹 空域濾波是一種鄰域處理方法,通過直接在影象空間中對鄰域內畫素進行處理,達到平滑或銳化影象的作用。此外,在影象識別中,通過濾波還可以抽出影象的特徵作為影象識別的特徵模式。 空域濾波是影象處理領域中廣泛使用的主要工具。空域濾波主要可以分為線性濾波和非線性濾波,
十五、Spring Boot 環境變量讀取 和 屬性對象的綁定
bean database 環境 autoconf lac autowire 屬性 boot title 凡是被spring管理的類,實現接口 EnvironmentAware 重寫方法 setEnvironment 可以在工程啟動時,獲取到系統環境變量和applicati
Linux 入門記錄:十五、Linux 網絡基本配置
包含 mac地址 圖像 鏈接 ifcfg 修改主機名 www. 永久生效 expr 一、以太網(Ethernet) 以太網(Ethernet)是一種計算機局域網技術。IEEE 組織的 IEEE 802.3 標準制定了以太網的技術標準,它規定了包括物理層的連線、電子信號和介
十五、Hadoop學習筆記————Zookeeper的環境搭建
per ip地址 整數 zookeep keep ado ima leader選舉 環境搭建 linux中/opt一般用來存放應用/var目錄一般用來存放日誌 sample為樣例文件,復制一份zoo.cfg文件 配置zoo文件,id為服務器id(整數),host為