3.4 KiB
3.4 KiB
vue-svg-pan-zoom : Vue component for SVG-Pan-Zoom
This module is a very simple [Vue][] component providing the goodness of [SVG-Pan-Zoom][] for SVG elements.
/!\ WARNING: the module is young, basic, probably will have its API change with no notice, and likely to have bugs. Use at your own risk, send patches for my eternal gratitude.
Basic Use
In a Single File Component:
<template>
<SvgPanZoom
style="width: 500px; height: 500px; border:1px solid black;"
:zoomEnabled="true"
:controlIconsEnabled="true"
:fit="false"
:center="true"
>
<svg>
<circle x="10" y="10" r="5" />
</svg>
</SvgPanZoom>`
</template>
<script>
import SvgPanZoom from 'vue-svg-pan-zoom';
export default {
components: { SvgPanZoom },
};
</script>
Notes
-
currently the
SvgPanZoom
component only works with asvg
child --embed
won't work. -
SvgPanZoom
accepts as attributes allsvg-pan-zoom
options:attribute default zoomEnabled true controlIconsEnabled false fit true panEnabled true dblClickZoomEnabled true mouseWheelZoomEnabled true preventMouseEventsDefault true contain false center true viewportSelector .svg-pan-zoom_viewport zoomScaleSensitivity 0.2 minZoom 0.5 maxZoom 10 refreshRate auto beforeZoom onZoom beforePan onPan onUpdatedCTM customEventsHandler eventsListenerElement
Use with thumbnails
In a Single File Component:
<template>
<SvgPanZoom
style="width: 300px; height: 500px; border:1px solid black; "
>
<svg> ... </svg>
<svg slot="thumbnail" class="thumbViewClass">
...
</svg>
</SvgPanZoom>
</template>
<script>
import SvgPanZoom from 'vue-svg-pan-zoom';
export default {
components: { SvgPanZoom },
};
</script>
<style>
@import 'vue-svg-pan-zoom/dist/vue-svg-pan-zoom.css';
</style>
Note that for the css import to work, you'll have to have postcss-import installed as a dep.
Notes
- Just like the main
SvgPanZoom
component, thethumbnail
slot needs to be assigned to asvg
node --embed
won't work.
Storybook demos
To run [Storybook][https://github.com/storybooks/storybook] stories duplicating the demos of
the main SVG-Pan-Zoom
project, do
$ yarn install --dev
$ yarn storybook