0.1.2 • Published 5 years ago

img-magnifier v0.1.2

Weekly downloads
6
License
MIT
Repository
github
Last release
5 years ago

img-magnifier

基于 vue 的图片放大组件

安装

使用 npm

npm install img-magnifier --save
# 或者
cnpm install img-magnifier --save

使用

main.js 文件中引入插件并注册

# main.js
import imgMagnifier from 'img-magnifier'
import 'img-magnifier/lib/img-magnifier.css'

Vue.use(imgMagnifier)

在项目中使用

<img-magnifier
  :smallSrc="smallImgSrc"
  :magnifierSrc="magnifierSrc"
  :maskStyle="maskStyle"
  :maskTransEnter="maskTransEnter"
  :maskTransLeave="maskTransLeave"
  :configs="configs"
></img-magnifier>

启动示例

API

props

参数描述类型必填?
smallSrc小图片的 srcStringNO
magnifierSrc放大镜图片的 srcStringNO
maskStyle遮罩的样式ObjectYES
configs基本配置项ObjectYES
maskTransEnter遮罩显示过渡动画样式ObjectNO
maskTransLeave遮罩隐藏过渡动画样式ObjectNO

例子

<template>
  <div class="container">
    <img-magnifier
      :smallSrc="smallImgSrc"
      :magnifierSrc="magnifierSrc"
      :maskStyle="maskStyle"
      :maskTransEnter="maskTransEnter"
      :maskTransLeave="maskTransLeave"
      :configs="configs"
    ></img-magnifier>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        smallImgSrc: '', // 小图片地址
        magnifierSrc: '', // 放大镜图片地址
        // 设置遮罩样式
        maskStyle: {
          width: '200px',
          height: '200px',
          background: '#000',
          opacity: 0.5,
          // 如果有多个过渡效果,可以设置 transition: 'opacity 2s,background 2s' ,请勿设置为:transition: 'all .8s' ,这将会影响组件的实现。
          transition: 'opacity .8s'
        },
        // 设置遮罩进入的过渡效果,选填,要实现动画效果请在 maskStyle 中设置 transition
        // 注意此处是在js中设置样式,如果使用了CSS3的属性,请自行按需添加私有前缀
        maskTransEnter: {
          opacity: 0
          // 这里仅为举例如何添加私有前缀
          // webkitTransform:translate3d(0,0,0)`,
          // transform:translate3d(0,0,0)`
        },
        // 设置遮罩离开的过渡效果,选填,要实现动画效果请在 maskStyle 中设置 transition
        // 同样请自行按需添加私有前缀
        maskTransLeave: {
          opacity: 0
        },
        configs: {
          // 小图片的宽高
          smallImgWidth: 400,
          smallImgHeight: 400,
          // 放大镜图片的宽高,注意是这里是图片的尺寸而不是
          magnifierWidth: 800,
          magnifierHeight: 800,
          magnifierPosWay: 'absolute',
          magnifierPosLeft: '420px',
          magnifierPosTop: 0
        }
      };
    }
  };
</script>

<style scoped></style>