首先是SVG文件,里面包含了几个不同的图元:
<?xml version='1.0' standalone='no'?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-flat-20030114.dtd">
<svg width='1024' height='768' xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cge="http://iec.ch/TC57/2005/SVG-schema#">
<g id='Folder'>
<circle id='BlueCircle' cx='425' cy='425' r='20' style='fill:blue; '/>
<circle id='RedCircle' cx='125' cy='425' r='20' style='fill:red; '/>
<circle id='OrangeCircle' cx='225' cy='425' r='20' style='fill:orange;'/>
<circle id='PinkCircle' cx='325' cy='425' r='20' style='fill:pink; '/>
<text id='DraggableText' x='20' y='200' style='fill:red; font-size:18px; font-weight:bold;'>Draggable Text</text>
<rect id='GreenRectangle' x='50' y='70' width='100' height='100' style='fill:green; '/>
<rect id='FolderRectangle' x='300' y='100' width='200' height='150' style='fill:tan; stroke:brown; stroke-width:3;'/>
</g>
</svg>
如下图:
接下来,读取SVG文件并并绘制矩形框选择图元,识别选中的图元:
var canves = null;
var svgDoc = null;
var svgRoot = null;
var rectObj = null;
var time = null;
var setSvg = new Set();
var svgElements = null;
var svgEleLen = null;
var isMouseDown = false;
var x1 = 0;
var y1 = 0;
var x2 = 0;
var y2 = 0;
var w = 0;