3D page flip effect for Vue.js
flipbook-vueis a Vue component that displays images in 3D page flip effect.
Demo page is here.
Install as a module:
npm i -S flipbook-vue
yarn add flipbook-vue
Or include in html:
If installed as a module,
If you would like to build from
.vuedirectly (including CoffeeScript transpile, etc),
import Flipbook from 'flipbook-vue/sfc'
import Flipbook from 'flipbook-vue/src/Flipbook.vue'
Array of image URLs. Required. All images should have the same aspect ratio.
If the first element is
null, the next element is displayed alone (as the cover page).
All other props are optional.
Array of high resolution versions of image URLs. They are used when zoomed.
Duration of page flipping animation in milliseconds. Defaults to 1000.
Duration of zoom in/out animation in milliseconds. Defaults to 500.
Array of possible magnifications.
nullis equivalent to
(no zoom). Defaults to
[1, 2, 4]. NOTE : Do NOT pass an empty array.
Intensity of ambient light in 0 to 1. Smaller value gives more shades. Defaults to 0.4.
Intensity of specular light in 0 to 1. Higher value gives more gloss. Defaults to 0.6.
Z-axis distance in pixels between the screen and the viewer. Higher value gives less effect. Defaults to 2400.
How many rectangles a single page is horizontally split into. Higher value gives higher quality rendering in exchange for performance. Defaults to 10.
Force single page mode regardless of viewport size. Defaults to false.
Reading direction. If your document is right-to-left, set this
"left". Default is
Enable centering of the cover pages. Default is
Page number (>= 1) to open. Default is
URL of an image that is displayed while page is loading. By default internal animated SVG is used.
Fired when flip to left animation starts. Argument is page number before flip.
Fired when flip to left animation ends. Argument is page number after flip.
Fired when flip to right animation starts. Argument is page number before flip.
Fired when flip to right animation ends. Argument is page number after flip.
Fired when zoom-in/out animation starts. Argument is magnification after zoom.
Fired when zoom-in/out animation ends. Argument is magnification after zoom.
This component exposes some properties and methods as slot properties. Example usage:
Previous Page Next Page
These properties and methods can also be referred through
True if it can flip to previous page. NOTE: Can return false if currently being animated.
True if it can flip to next page. NOTE: Can return false if currently being animated.
True if it can zoom in.
True if it can zoom out.
Current page number (1 to
Total number of pages.
Method to flip to previous page.
Method to flip to next page.
Method to zoom in.
Method to zoom out.
You may need to specify the size of view port in your style sheet, directly toelement, or to
.viewportsub-element of flipbook.
If the size is horizontally long and
false(default), it displays two pages spread, suitable for desktop browsers. If it's vertically long, it displays single pages, suitable for smartphones.
There are some internal classes.
element that contains everything but . is placed above.viewport.
Approximate bounding box of the displayed images. Suitable to givebox-shadow.
Supports modern browsers and IE 11.
Server-side rendering, or Nuxt support
Server-side rendering is not supported. Configure this component rendered only on client-side. See this issue.
To start development server with demo pages:yarn yarn serve
To package for npm:yarn dist
Copyright © 2019-2020 Takeshi Sone.