按住滑鼠可以拖動箭頭旋轉程式碼例項
分享一段程式碼例項,它實現了按住滑鼠就可以拖動箭頭旋轉效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> * { padding: 0; margin: 0; } </style> </head> <body> <canvas width="500" height="500" style="border: 1px solid #555;margin: 0 auto;"></canvas> <script> var arrow = function() { this.x = 0; this.y = 0; this.color = "#f90" this.rolation = 0; } var canvas = document.querySelector('canvas') var ctx = canvas.getContext('2d'); arrow.prototype.draw = function(ctx) { ctx.save(); ctx.translate(this.x, this.y); ctx.rotate(this.rolation) ctx.fillStyle = this.color; ctx.beginPath(); ctx.moveTo(0, 15); ctx.lineTo(-50, 15); ctx.lineTo(-50, -15); ctx.lineTo(0, -15); ctx.lineTo(0, -35); ctx.lineTo(50, 0); ctx.lineTo(0, 35); ctx.closePath() ctx.fill(); ctx.restore(); } var Arrow = new arrow(); Arrow.x = canvas.width / 2; Arrow.y = canvas.height / 2; var c_x, c_y; //相對於canvas座標的位置; var isMouseDown = false; Arrow.draw(ctx) canvas.addEventListener('mousedown', function(e) { isMouseDown = true; }, false) canvas.addEventListener('mousemove', function(e) { if (isMouseDown == true) { c_x = getPos(e).x - canvas.offsetLeft; c_y = getPos(e).y - canvas.offsetTop; //setInterval(drawFram,1000/60) requestAnimationFrame(drawFram) } }, false) canvas.addEventListener('mouseup', function(e) { isMouseDown = false; }, false) function drawFram() { var dx = c_x - Arrow.x; var dy = c_y - Arrow.y; Arrow.rolation = Math.atan2(dy, dx); ctx.clearRect(0, 0, canvas.width, canvas.height); Arrow.draw(ctx) } function getPos(e) { var mouse = { x: 0, y: 0 } var e = e || event; if (e.pageX || e.pageY) { mouse.x = e.pageX; mouse.y = e.pageY; } else { mouse.x = e.pageX + document.body.scrollLeft + document.document.documentElement.scrollLeft; mouse.y = e.pageY + document.body.scrollTop + document.document.documentElement.scrollTop; } return mouse; } </script> </body> </html>
相關文章
- 滑鼠按住拖動具有半透明效果的程式碼例項
- 點選左右箭頭可以移動選項例項程式碼
- 可以拖動的div塊程式碼例項
- js按住滑鼠繪製線條程式碼例項JS
- canvas 按住滑鼠拖動 繪製文字Canvas
- CSS空心箭頭程式碼例項CSS
- 滑鼠拖動實現將div放入方格例項程式碼
- 通過滑鼠拖動選取指定數字程式碼例項
- 可以拖動立方體3D效果程式碼例項3D
- canvas繪製箭頭效果程式碼例項Canvas
- 更換select箭頭程式碼例項
- 滑鼠懸浮div實現旋轉縮放效果程式碼例項
- jQuerydiv元素拖動效果程式碼例項jQuery
- 可以限定拖動範圍的彈出視窗效果程式碼例項
- SVG拖動繪製矩形程式碼例項SVG
- js 根據滑鼠拖動(或手機長按)旋轉JS
- css三角形箭頭程式碼例項CSS
- 3D旋轉效果程式碼例項3D
- CSS3旋轉效果程式碼例項CSSS3
- 移動端div塊拖動效果程式碼例項
- css3實現滑鼠懸浮圖示旋轉高亮效果程式碼例項CSSS3
- 表格拖動滾動條標題固定程式碼例項
- 拖動滾動條載入資料程式碼例項
- canvas實現的按住滑鼠拖動能夠繪製文字效果Canvas
- js實現的div拖動效果例項程式碼JS
- 替換預設select下拉選單箭頭程式碼例項
- javascript元素3D旋轉效果程式碼例項JavaScript3D
- css控制div元素旋轉指定角度程式碼例項CSS
- js判斷螢幕是否旋轉程式碼例項JS
- 滑鼠中鍵滾動mousewheel事件例項程式碼事件
- 按住panel 拖動窗體的方法
- 滑鼠懸浮可以伸縮的搜尋框程式碼例項
- js物件導向封裝拖動效果程式碼例項JS物件封裝
- js通過拖動調整元素位置程式碼例項JS
- 拖動滾動條實現div跟隨效果程式碼例項
- css實現的div旋轉簡單程式碼例項CSS
- 禁用滑鼠右鍵例項程式碼
- css取消滑鼠事件程式碼例項CSS事件