基于vue的简单轻便的开源图片预览组件

7,553 阅读2分钟

先上效果图

demo1.gif

demo2 .gif

demo3.gif

演示地址

dark2017.github.io/vue-dark-ph…

vue-dark-photo

  • 基于 vue2.x 开发的预览图片组件
  • 支持 放大、缩小、复原、下载、打印、旋转、拖拽等功能
  • 支持png、jpg、jpge、bmp、gif等常见图片格式
  • 支持查看多个图片
  • 开箱即用 只需传图片数据 轻便简单
  • GitHub地址:github.com/Dark2017/vu…

安装使用说明

vue-dark-photo

npm i vue-dark-photo

// 在入口(main.js)中引入并挂载
import VDPhoto from 'vue-dark-photo'
// 引入vue-dark-photo 样式
import 'vue-dark-photo/lib/vue-dark-photo.css'

Vue.use(VDPhoto)

//通过cdn引入 以下链接
https://cdn.jsdelivr.net/npm/vue-dark-photo@{verison}/lib/vue-dark-photo.umd.min.js
https://cdn.jsdelivr.net/npm/vue-dark-photo@{verison}/lib/vue-dark-photo.css

示例

调用全局方法打开

this.$VDPhoto.show({
    imgData: "url",
    publish: (val) => {
        console.log(val)
    }
});

组件形式打开

<VDPhoto 
    ref="VDPhoto"
    :imgData='imgData'
    :title='title'
    @publish='publish'
    ....
/>
this.$refs.VDPhoto.show()

api

属性

属性值类型描述默认值
imgDatastring图片地址(url)-
imgArrArray图片地址(数组)-
isHintBoolean是否展示提示(第一张或最后一张)true
customActionObject自定义操作栏null

customAction

属性值类型描述默认值
lastCardBoolean是否需要上一张true
narrowBoolean是否需要缩小true
reductionBoolean是否需要复原true
enlargeBoolean是否需要放大true
leftRotateBoolean是否需要逆时针旋转true
rightRotateBoolean是否需要顺时针旋转true
downloadFileBoolean是否需要下载true
publishBoolean是否需要打印true
nextCardBoolean是否需要下一张true
mousewheelBoolean是否需要滚轮缩放true
mouseDownBoolean是否需要拖拽功能true
customArray自定义操作栏-

custom

属性值类型描述默认值
titleString悬浮标题-
onClickfunction点击回调-
styleObject操作按钮样式-
contentString操作按钮内容-

事件

事件名说明回调参数
publish打印后的回调打印的内容
close关闭后的回调-

方法

方法名说明
show打开photo
······

注意

  • 通过this.$refs.VDPhoto.show()来打开组件
  • 若引用图片地址,相对地址使用require()包裹或使用绝对地址
  • 若imgData 和 imgArr 同时传了 则只有imgData生效

最后