An extension of svg.js which allows to select elements with mouse
Note: Duo to naming conflicts the exported method was renamed from select()
to selectize()
.
For a demo see http://svgdotjs.github.io/svg.select.js/
-
Install
svg.select.js
using bower:bower install svg.select.js
-
Include the script after svg.js into your page
<script src="svg.js"></script> <script src="svg.select.js"></script>
-
Select a rectangle using this simple piece of code:
<div id="myDrawing"></div> var drawing = new SVG('myDrawing').size(500, 500); drawing.rect(50,50).selectize()
Select
var draw = SVG('drawing');
var rect = draw.rect(100,100);
rect.selectize();
// or deepSelect
rect.selectize({deepSelect:true});
Unselect
rect.selectize(false);
// or deepSelect
rect.selectize(false, {deepSelect:true});
You can specify which points to be drawn (default all will be drawn)
The list can be an array of strings or a comma separated list / string, representing each position, in correspondence with the classes:
lt
- left toprt
- right toprb
- right bottomlb
- left bottomt
- topr
- rightb
- bottoml
- left
Example of drawing only top
and right
points:
rect.selectize({
points: ['t', 'r'] // or 't, r'
})
There is also an extra option called pointsExclude
which can be a list of points to be excluded from the points
list.
So let's say that you need all the points except top
and right
:
rect.selectize({
pointsExclude: ['t', 'r'] // or 't, r'
})
You can style the selection with the classes
svg_select_boundingRect
svg_select_points
svg_select_points_lt
- left topsvg_select_points_rt
- right topsvg_select_points_rb
- right bottomsvg_select_points_lb
- left bottomsvg_select_points_t
- topsvg_select_points_r
- rightsvg_select_points_b
- bottomsvg_select_points_l
- leftsvg_select_points_rot
- rotation pointsvg_select_points_point
- deepSelect points
- points: Points should be drawn (default
['lt', 'rt', 'rb', 'lb', 't', 'r', 'b', 'l']
) - pointsExclude: Same as points option, only thing that this excludes listed points, you can use (default
[]
) - classRect: Classname of the rect from the bounding Box (default
svg_select_boundingRect
) - classPoints: Classname/Prefix of the Points (default
svg_select_points
) - pointSize: Size of the point. Radius for the
pointType: 'circle'
or size of a rect forpointType: 'rect'
(default7
) - rotationPoint: Draws the point for doing rotation (default
true
) - deepSelect: Only for polygon/polyline/line. Selects the points itself (default
false
) - pointType: Type of a point,
circle
orrect
or function (see functions for drawing circle or rect points) (defaultcircle
)