vue使用Viewer.js 实现点击按钮展示图片的效果

 1.首先先在项目中下载viewerjs插件

npm install v-viewer --save-dev

2.效果图

3.vue代码展示:

<template>
  <div>
    <span>
      <el-button @click="openViewer">查看图片</el-button>
    </span>
    <img ref="image" :src="imageSrc" style="display: none;"/>
  </div>
</template>

<script>
import 'viewerjs/dist/viewer.css';
import Viewer from 'viewerjs';

export default {
  data() {
    return {
      imageSrc: 'https://img95.699pic.com/desgin_photo/40139/4137_list.jpg', // 预览图片的 URL
      viewer: null, // 存储 Viewer 实例
    };
  },
  beforeDestroy() {
    // 在组件销毁时销毁 Viewer 实例
    if (this.viewer) {
      this.viewer.destroy();
    }
  },
  methods: {
    openViewer() {
      // 创建新的 Viewer 实例
      this.$nextTick(() => {
        // 如果已经有 Viewer 实例,则先销毁
        if (this.viewer) {
          this.viewer.destroy();
        }
        // 创建新的 Viewer 实例
        this.viewer = new Viewer(this.$refs.image, {
          inline: false, // 不使用内联模式,强制弹出(使用内联样式就会在页面展示,不弹出)
          navbar: true, // 显示导航
          title: false, // 隐藏标题
          toolbar: true, // 显示工具栏
          zoomable: true, // 支持缩放
          rotatable: true, // 支持旋转
          scalable: true, // 支持缩放
          transition: true, // 启用过渡效果
        });
        // 显示图片
        this.viewer.show();
      });
    },
  },
};
</script>

### 集成和使用 ViewerJSVue 3 #### 安装依赖包 为了在 Vue 3 项目中集成 `v-viewer`,需要先通过 npm 或 yarn 来安装所需的依赖项。执行如下命令来完成安装: ```bash npm install v-viewer --save ``` 或者如果偏好使用 Yarn: ```bash yarn add v-viewer ``` 此操作会下载并保存 `v-viewer` 及其必要的依赖到项目的 node_modules 文件夹下[^1]。 #### 导入 CSS 和初始化插件 接着,在项目的入口文件(通常是 main.js 或者 main.ts),引入 `v-viewer` 的样式表以及注册该插件至 Vue 实例上: ```javascript import { createApp } from 'vue'; import App from './App.vue'; // 导入 viewerjs 样式 import 'viewerjs/dist/viewer.css'; // 导入 vue 查看器组件 import Viewer from 'v-viewer'; const app = createApp(App); app.use(Viewer); app.mount('#app'); ``` 这段代码确保了整个应用程序都可以访问 `v-viewer` 功能,并且设置了默认配置选项以便更好地控制查看体验[^4]。 #### 设置全局默认参数 为了让所有的图片预览都具有一致的行为表现,可以在应用启动时设置一些通用的属性。这可以通过调用 `Viewer.setDefaults()` 方法实现: ```javascript Viewer.setDefaults({ Options: { "inline": false, "button": true, "navbar": true, "title": true, "toolbar": true, "tooltip": true, "movable": true, "zoomable": true, "rotatable": true, "scalable": true, "transition": true, "fullscreen": true, "keyboard": true, "url": "data-source" } }); ``` 这些设定允许用户自定义界面元素显示与否及其交互特性,比如是否启用缩放、旋转等功能。 #### 使用组件实例化查看器 最后一步是在具体的页面或组件内创建一个用于触发图像浏览事件的方法或是直接绑定 HTML 属性。下面是一个简单的例子展示如何在一个按钮点击后开启查看模式: ```html <template> <div id="example"> <!-- 图像列表 --> <ul class="image-list"> <li v-for="(imgSrc, index) in images" :key="index"> <img :src="imgSrc" @click="$refs.viewer.show(index)" /> </li> </ul> <!-- 创建 viewer 实例 --> <viewer ref="viewer" :images="images"></viewer> </div> </template> <script setup lang="ts"> import { ref } from 'vue'; let images = [ '/path/to/image1.jpg', '/path/to/image2.png' ]; </script> ``` 在这个模板里,当某张图片点击的时候就会激活对应的查看窗口,并定位到当前选中的那张照片位置。同时注意这里用了 `$refs` 方式获取到了 `<viewer>` 组件实例从而可以方便地对其进行方法调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值