Git Product home page Git Product logo

vue-zoomer's Introduction

vue-zoomer

Zoom the image or other thing with mouse or touch

For Vue 3

This library has released a Vue 3 beta version here.

Demo

Usage

Install:

npm install vue-zoomer

Import and register globally:

import Vue from 'vue'
import VueZoomer from 'vue-zoomer'

Vue.use(VueZoomer)

Import and register locally (after v0.3.10):

<!-- page1.vue -->
<script>
import VueZoomer from 'vue-zoomer'

export default {
  components: {
    VZoomer: VueZoomer.Zoomer,
    VZoomerGallery: VueZoomer.Gallery,
  },
}
</script>

You can also import the source files (after v0.3.10), rather than the minified umd bundle, for better debugging experience:

import VueZoomer from 'vue-zoomer/src'

Single usage:

<v-zoomer style="width: 500px; height: 500px; border: solid 1px silver;">
  <img
    src="./assets/landscape-1.jpg"
    style="object-fit: contain; width: 100%; height: 100%;"
  >
</v-zoomer>

Gallery usage:

<v-zoomer-gallery
  style="width: 100vw; height: 100vh;"
  :list="['a.jpg', 'b.jpg', 'c.jpg']"
  v-model="selIndex"
></v-zoomer-gallery>

API

<v-zoomer> Props

  • maxScale: number - Maximum scale limit, default is 5;
  • minScale: number - Minimum scale limit, default is 1;
  • zoomed: out boolean - Whether zoomed in (scale equals to 1). out means the prop is a child to parent one-way binding. So there must have a .sync modifier.
  • pivot: 'cursor' | 'image-center' - The pivot when zoom the content, default is cursor, can set to be image-center;
  • zoomingElastic: boolean - Whether to use the elastic effect when reaching the max/min zooming bounds, default is true;
  • limitTranslation: boolean - Whether to limit the content into the container, default is true;
  • doubleClickToZoom: boolean - Whether to zoom in/out the content by double click, default is true;
  • mouseWheelToZoom: boolean - Whether to zoom in/out the content by mouse wheel, default is true;

<v-zoomer> Methods

  • reset() - Reset the scale and translate to the initial state.
  • zoomIn(scale=2) - Zoom in.
  • zoomOut(scale=0.5) - Zoom out.

<v-zoomer-gallery> Props

  • list: Array<string> required - Displaying image urls;
  • v-model(value): number required - Index of current showing image;
  • pivot: 'cursor' | 'image-center' - Same as above;
  • zoomingElastic: boolean - Same as above;
  • limitTranslation: boolean - Same as above;
  • doubleClickToZoom: boolean - Same as above;
  • mouseWheelToZoom: boolean - Same as above;

<v-zoomer-gallery> Methods

  • reset() - Reset the scale and translate to the initial state.
  • zoomIn(scale=2) - Zoom in.
  • zoomOut(scale=0.5) - Zoom out.

License

MIT

vue-zoomer's People

Contributors

jarvisniu avatar kaveet avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.