An extension of svg.js which allows to resize elements which are selected with svg.select.js
For a demo see http://svgdotjs.github.io/svg.resize.js/
Install svg.js, svg.select.js and svg.resize.js using npm:
npm i @svgdotjs/svg.js @svgdotjs/svg.select.js @svgdotjs/svg.resize.jsOr get it from a cnd:
<link rel="stylesheet" href="https://unpkg.com/@svgdotjs/svg.resize.js@latest/dist/svg.resize.css" />
<script src="https://unpkg.com/@svgdotjs/svg.js"></script>
<!-- the select plugin comes bundled with the resize plugin -->
<!-- <script src="https://unpkg.com/@svgdotjs/svg.select.js"></script> -->
<script src="https://unpkg.com/@svgdotjs/svg.resize.js"></script>Select and resize a rectangle using this simple piece of code:
var canvas = new SVG().addTo('body').size(500, 500)
canvas.rect(50, 50).fill('red').select().resize()Activate resizing
rect.select().resize()Deactivate resizing
rect.resize(false)Preserve aspect ratio, resize around center and snap to grid:
rect.resize({ preserveAspectRatio: true, aroundCenter: true, grid: 10, degree: 0.1 })preserveAspectRatio: Preserve the aspect ratio of the element while resizingaroundCenter: Resize around the center of the elementgrid: Snaps the shape to a virtual grid while resizingdegree: Snaps to an angle when rotating
While resizing, a resize event is fired. It contains the following properties (in event.detail):
box: The resulting bounding box after the resize operationangle: The resulting rotation angle after the resize operationeventType: The type of resize operation (the event fired by the select plugin)event: The original eventhandler: The resize handler
rect.on('resize', (event) => {
console.log(event.detail)
})git clone https://github.com/svgdotjs/svg.resize.js.git
cd svg.resize.js
npm install
npm run dev- The option naming changed a bit. Please double check
- The former events were removed. The resize event now serves the same purpose