ImagePreview
Intro
Used to zoom in and preview the picture, and it supports two methods: function call and component call.
Install
Register component globally via app.use
, refer to Component Registration for more registration ways.
Usage
Basic Usage
Set Start Position
Show Close Icon
After setting the closeable
attribute, the close icon will be displayed in the upper right corner of the pop-up layer, and the icon can be customized through the close-icon
attribute, and the icon location can be customized by using the close-icon-position
attribute.
Close Event
Before Close
Component Call
API
Options
Attribute |
Description |
Type |
Default |
images |
Images URL list |
string[] |
[] |
startPosition |
Start position |
number | string |
0 |
showIndex |
Whether to show index |
boolean |
true |
showIndicators |
Whether to show indicators |
boolean |
false |
loop |
Whether to enable loop |
boolean |
true |
swipeDuration |
Animation duration (ms) |
number | string |
300 |
onClose |
Emitted when ImagePreview is closed |
Function |
- |
onChange |
Emitted when current image changed |
Function |
- |
onScale |
Emitted when scaling current image |
Function |
- |
closeOnPopstate |
Whether to close when popstate |
boolean |
true |
beforeClose |
Callback function before close |
(action) => boolean | Promise |
- |
className |
Custom className |
string | Array | object |
- |
maxZoom |
Max zoom |
number | string |
3 |
minZoom |
Min zoom |
number | string |
1/3 |
closeable |
Whether to show close icon |
boolean |
false |
closeIcon |
Close icon name |
string |
clear |
closeIconPosition |
Close icon position,can be set to top-left bottom-left bottom-right |
string |
top-right |
transition v3.0.8 |
Transition, equivalent to name prop of transition |
string |
van-fade |
overlay-style v3.0.8 |
Custom overlay style |
object |
- |
teleport |
Return the mount node for ImagePreview |
string | Element |
- |
Props
Attribute |
Description |
Type |
Default |
images |
Images URL list |
string[] |
[] |
start-position |
Start position |
number | string |
0 |
swipe-duration |
Animation duration (ms) |
number | string |
300 |
show-index |
Whether to show index |
boolean |
true |
show-indicators |
Whether to show indicators |
boolean |
false |
loop |
Whether to enable loop |
boolean |
true |
before-close |
Callback function before close |
(action) => boolean | Promise |
- |
close-on-popstate |
Whether to close when popstate |
boolean |
true |
class-name |
Custom className |
string | Array | object |
- |
max-zoom |
Max zoom |
number | string |
3 |
min-zoom |
Min zoom |
number | string |
1/3 |
closeable |
Whether to show close icon |
boolean |
false |
close-icon |
Close icon name |
string |
clear |
close-icon-position |
Close icon position,can be set to top-left bottom-left bottom-right |
string |
top-right |
transition v3.0.8 |
Transition, equivalent to name prop of transition |
string |
van-fade |
overlay-style v3.0.8 |
Custom overlay style |
object |
- |
teleport |
Return the mount node for ImagePreview |
string | Element |
- |
Events
Event |
Description |
Parameters |
close |
Emitted when closing ImagePreview |
{ index, url } |
closed |
Emitted when ImagePreview is closed |
- |
change |
Emitted when current image changed |
index: index of current image |
scale |
Emitted when scaling current image |
{ index: index of current image, scale: scale of current image} |
Methods
Use ref to get ImagePreview instance and call instance methods.
Name |
Description |
Attribute |
Return value |
swipeTo 2.9.0 |
Swipe to target index |
index: target index, options: Options |
- |
Slots
Name |
Description |
SlotProps |
index |
Custom index |
{ index: index of current image } |
cover |
Custom content that covers the image preview |
- |
onClose Parematers
Attribute |
Description |
Type |
url |
Url of current image |
number |
index |
Index of current image |
number |
onScale Parematers
Attribute |
Description |
Type |
index |
Index of current image |
number |
scale |
scale of current image |
number |
Less Variables
How to use: Custom Theme.
Name |
Default Value |
Description |
@image-preview-index-text-color |
@white |
- |
@image-preview-index-font-size |
@font-size-md |
- |
@image-preview-index-line-height |
@line-height-md |
- |
@image-preview-index-text-shadow |
0 1px 1px @gray-8 |
- |
@image-preview-overlay-background-color |
rgba(0, 0, 0, 0.9) |
- |
@image-preview-close-icon-size |
22px |
- |
@image-preview-close-icon-color |
@gray-5 |
- |
@image-preview-close-icon-active-color |
@gray-6 |
- |
@image-preview-close-icon-margin |
@padding-md |
- |
@image-preview-close-icon-z-index |
1 |
- |