SVG使用滑鼠點選繪製折線效果
分享一段程式碼例項,它通過滑鼠點選實現了繪製折線的功能。
也就是類似於js的dom操作,我們也可以稱之為SVG DOM操作。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> <div class="div1"> <svg id="svg1" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%"> </svg> </div> <script> window.onload = function() { var ming = 'http://www.w3.org/2000/svg'; var oSvg = document.getElementById('svg1'); var oPolyLine = null; var pointsNum = ''; function createTag(tagName, tagAttr) { let tag = document.createElementNS(ming, tagName); for (var attr in tagAttr) { tag.setAttribute(attr, tagAttr[attr]); } return tag; } var obj = document.querySelectorAll('.div1')[0]; obj.appendChild(createTag('svg', { 'xmlns': ming })); oSvg.onmousedown = function(ev) { if (!oPolyLine) { oPolyLine = createTag('polyline', { 'fill': 'none', 'stroke': 'red', 'stroke-width': '2' }); oSvg.appendChild(oPolyLine); } var x = ev.clientX - obj.offsetLeft; var y = ev.clientY - obj.offsetTop; if (pointsNum == '') { pointsNum = x + ',' + y; } else { pointsNum += ',' + x + ',' + y; } oPolyLine.setAttribute('points', pointsNum); var oCircle = createTag('circle', { 'cx': x, 'cy': y, 'r': '5', 'fill': 'white', 'stroke': 'red', 'stroke-width': 3 }); oSvg.appendChild(oCircle); if (ev.button === 2) { oSvg.onmousemove = null; oSvg.oncontextmenu = function() { oSvg.onmousemove = null; return false; }; } else { oSvg.onmousemove = function(ev) { var ev = ev || window.event; if (oPolyLine) { var x = ev.clientX - obj.offsetLeft; var y = ev.clientY - obj.offsetTop; oPolyLine.setAttribute('points', pointsNum + ',' + x + ',' + y); } }; } } } </script> </body> </html>
相關文章
- SVG <polyline> 繪製折線SVG
- SVG 繪製直線SVG
- iOS使用Charts框架繪製折線圖iOS框架
- PyQtGraph繪製折線圖QT
- AnyChart繪製折線圖
- JavaScript點選兩點繪製直線JavaScript
- MATLAB 繪製折線圖Matlab
- SVG <path> 元素A指令繪製弧線SVG
- amCharts繪製帶趨勢線折線圖
- SVG繪製直線簡單介紹SVG
- Chart.js繪製動態折線圖JS
- SVG <rect> 繪製矩形SVG
- SVG <text>繪製文字SVG
- canvas繪製網格射線效果Canvas
- SVG繪製1px直線模糊問題SVG
- 使用html5實現的繪製直線效果HTML
- 用Python的random模組繪製折線圖Pythonrandom
- amCharts繪製折線圖和柱狀圖混合
- SVG <circle> 繪製圓形SVG
- SVG繪製餅狀圖SVG
- SVG 繪製圓角矩形SVG
- canvas繪製經典星空連線效果Canvas
- js按住滑鼠繪製線條程式碼例項JS
- JS實現滑鼠點選愛心&繪製多邊形&每日一言功能JS
- SVG點選實現動態放大的圓效果SVG
- SVG <ellipse> 繪製橢圓SVG
- CSS & SVG 繪製寫作網格線的3種方式CSSSVG
- 關於如何使用原生HTML + JS + CSS繪製簡單折線柱狀圖HTMLJSCSS
- C++ Qt開發:Charts折線圖繪製詳解C++QT
- 如何繪製酷炫折線圖? 視訊教程 + 原始碼原始碼
- 中國地圖繪製-點選事件地圖事件
- python 繪製雙y軸,將折線加粗並在折線上做標記Python
- 自定義控制元件之kotlin繪製折線圖和曲線圖控制元件Kotlin
- SVG基礎知識 Adobe Illustrator繪製SVGSVG
- JavaScript實用的表格行滑鼠點選高亮效果JavaScript
- Python 利用pandas和matplotlib繪製柱狀折線圖Python
- highcharts繪製折線資料圖程式碼例項
- canvas繪製帶有漸變效果的直線Canvas