动态添加元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | < html > < head ></ head > < body > < div >x坐标值< input id="xValue"></ div > < div >y坐标值< input id="yValue"></ div > < div >文本内容< input id="iText"></ div > < button id="add">动态添加元素</ button > < br /> < iframe id="mySVG" src="map.svg" style="width:100%;height:400px;"></ iframe > </ body > < script src="jquery.min.js"></ script > < script > var svgDoc = null; var time = null; // 动态添加元素 var addElement = function(x, y, nodeText) { // 添加圆形 var c = svgDoc.createElementNS('http://www.w3.org/2000/svg', 'circle'); c.setAttribute('cx', x); c.setAttribute('cy', y); c.r.baseVal.value = 7; c.setAttribute('fill', 'red'); c.addEventListener("click", function() { alert('圆形点击测试:' + nodeText); }); c.addEventListener("mouseover", function() { console.log('圆形鼠标悬停测试:' + nodeText); }); svgDoc.rootElement.appendChild(c); // 添加文本 var t = svgDoc.createElementNS('http://www.w3.org/2000/svg', 'text'); t.setAttribute("x", parseInt(x) + 5); t.setAttribute("y", parseInt(y) + 10); t.setAttribute("font-size", "20"); t.setAttribute('fill', 'green'); t.addEventListener("click", function() { alert('文本点击测试:' + nodeText); }); t.addEventListener("mouseover", function() { console.log('文本鼠标悬停测试:' + nodeText); }); t.innerHTML = nodeText; svgDoc.rootElement.appendChild(t); }; // 载入SVG var loadSvg = function() { svgDoc = document.getElementById("mySVG").contentWindow.document; if(svgDoc == null) { time = setTimeout("loadSvg()", 300); } else { clearTimeout(time); loadCallback(); } }; // 载入回调 var loadCallback = function() { console.log("加载完成"); }; $(function() { // 延迟加载 setTimeout("loadSvg()", 300); // 按钮 $("#add").click(function() { var nodeText = $("#iText").val(); if(nodeText == "") { nodeText = "未输入文本"; } console.log(nodeText); addElement($("#xValue").val(), $("#yValue").val(), nodeText); }); }); </ script > </ html > |
map.svg
1 2 3 4 5 6 7 8 | < svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2377" height="2867">< defs > < style type="text/css"> @font-face { font-family: 'topology'; src: url('http://at.alicdn.com/t/font_1331132_h688rvffmbc.ttf?t=1569311680797') format('truetype'); } </ style > </ defs >< g /></ svg > |
标签:
svg
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2019-07-07 sql查询表的所有字段和表字段对应的类型
2018-07-07 avalon子孙元素属性监听
2015-07-07 SqlDataAdapter.Update批量数据更新
2015-07-07 批量添加数据SqlBulkCopy
2015-07-07 SqlDataAdapter 批量更新数据库表