vue3-zoom-pan-pinch

vue3 zoom and pan
3,432 8
Install
npm install vue3-zoom-pan-pinch
Latest Version:1.0.2
Vue:3
License:ISC
Last Updated:Dec 4, 2023
Links: GitHub  ·  npm
Maintainer: dummy-ekko

vue3-zoom-pan-pinch

Super fast and light vue3 npm package for zooming, panning and pinching html elements in easy way

Install

npm install --save vue3-zoom-pan-pinch

or

yarn add vue3-zoom-pan-pinch

Usage

import {
  defineComponent,
  ref,
  shallowRef,
  watch,
  unref,
  reactive,
  onMounted,
} from "vue";
import { TransformComponent } from "vue3-zoom-pan-pinch";
import car from "./assets/images/car.png";
import "./App.scss";

export default defineComponent({
  name: "App",
  setup() {
    const transformComponentRef = ref(null);
    return () => (
      <div>
        <TransformComponent
          ref={transformComponentRef}
          defaultScale={1.2}
          defaultPositionX={10}
          defaultPositionY={20}
          wheel={{
            step: 1,
          }}
        >
          <div class="content">
            <img src={car} />
          </div>
        </TransformComponent>
        <footer>
          <button onClick={transformComponentRef.value?.resetTransform}>reset</button>
        </footer>
      </div>
    );
  },
});

<script setup lang="ts">
import { TransformComponent } from 'vue3-zoom-pan-pinch'
import car from './assets/car.png'
</script>

<template>
  <div>
    <TransformComponent
      :wheel="{
        step: 1
      }"
    >
      <div class="content">
        <img :src="https://raw.githubusercontent.com/DummyEkko/vue3-zoom-pan-pinch/HEAD/car" alt="" srcset="" />
      </div>
    </TransformComponent>
  </div>
</template>

Props of TransformComponent

Props Default Type
defaultPositionX 0 number
defaultPositionY 0 number
defaultScale 1 number
options {...} object
wheel {...} object
pan {...} object
pinch {...} object
Options prop elements
Props Default Type
disabled false boolean
minPositionX null null, number
maxPositionX null null, number
minPositionY null null, number
maxPositionY null null, number
minScale 1 number
maxScale 8 number
limitToBounds true boolean
centerContent true boolean
Wheel prop elements
Props Default Type
disabled false boolean
step 6.5 number
wheelEnabled true boolean
touchPadEnabled true boolean
disableLimitsOnWheel true boolean
Pan prop elements
Props Default Type
disabled false boolean
lockAxisX false boolean
lockAxisY false boolean
limitToWrapperBounds false boolean
Pinch prop elements
Props Default Type
disabled false boolean
step 1 number

Related Packages

pinch-slider

a slider for images which can be zoomed or pinched

1,222
vue-panzoom

Vue plugin to zoom/pan dom elements

201,156 96
simple-panzoom

保留 vue3-sketch-ruler 实际用到的功能,移除 SVG、IE 与多指捏合等未用特性,提升性...

1,539 303
@coddicat/vue-pinch-scroll-zoom

Vue component enabling scroll and zoom functionalities for content, leveraging m...

147,931 65
vue-openseadragon

OpenSeaDragon component for Vue.js

3,936 29

Version History

Version Released Vue License
1.0.2 >=3.0.0 ISC
1.0.1 >=3.0.0 ISC