viewerjs在vue中实现点击图片预览、切换、缩放、拖拽、旋转等功能

1、下载依赖:

npm i viewerjs

2、定义html结构

html 复制代码
<template>
<div>
  <ul class="artBody">
    <li><img src="picture-1.jpg" alt="Picture 1"></li>
    <li><img src="picture-2.jpg" alt="Picture 2"></li>
    <li><img src="picture-3.jpg" alt="Picture 3"></li>
  </ul>
</div>
</template>

3、入viewerjs插件并创建实例

javascript 复制代码
<script setup>
import Viewer from "viewerjs";
import "viewerjs/dist/viewer.css";

const viewer = ref(null);

onMounted(() => {
  initViewer();
});

const initViewer = () => {
  nextTick(() => {
    if (viewer.value) {
      viewer.value.destroy();
      viewer.value = null;
      return;
    }
    viewer.value = new Viewer(document.querySelector(".artBody"), {
      navbar: true, // 显示导航栏
      toolbar: true, // 显示工具栏
      title: true, // 显示标题
    });
    Array.from(document.querySelector(".artBody")).forEach((val) => {
      val.addEventListener("click", function (e) {
        viewer.show();
        viewer.view(e.target.currentSrc);
      });
    });
  });
};
</script>
  • js中在页面挂载完成后开始创建一个Viewer示例,第一个参数是图片所在的区域,第二个参数为Viewer内置的一些工具栏配置
  • 工具栏选项可在官网查看:viewerjs - npm
相关推荐
小J听不清17 分钟前
CSS 文本对齐方式实战:text-align 核心用法
前端·javascript·css·html·css3
我爱学习_zwj19 分钟前
设计模式-2(单例模式与原型模式)
前端·javascript·设计模式
霍理迪28 分钟前
Vue—侦听属性
前端·javascript·vue.js
小J听不清33 分钟前
CSS display 属性全解析:块级 / 行内 / 行内块 / 隐藏
前端·javascript·css·html·css3
早點睡39034 分钟前
ReactNative项目Openharmony三方库集成实战:react-native-safe-area-context
javascript·react native·react.js
Jinuss1 小时前
React 19 新特性:`useOptimistic` Hook 完整指南
前端·javascript·react.js
清汤饺子1 小时前
$20 的 Cursor Pro 额度,这样用一个月都花不完
前端·javascript·后端
ℋᙚᵐⁱᒻᵉ鲸落1 小时前
Vue3 分页加载避坑指南:如何解决“向下滚动时出现重复数据”的问题?
前端·vue.js
六月June June9 小时前
自定义调色盘组件
前端·javascript·调色盘
SY_FC9 小时前
实现一个父组件引入了子组件,跳转到其他页面,其他页面返回回来重新加载子组件函数
java·前端·javascript