vitepress预览缩放图片插件的踩坑之路!!!

插件:【medium-zoom】

  • 安装
npm i medium-zoom
  • 使用:
    创建样式文件.vitepress/theme/style/var.css
.medium-zoom-overlay {
    background-color: var(--vp-c-bg) !important;
    z-index: 100;
}

.medium-zoom-overlay~img {
    z-index: 101;
}

.medium-zoom--opened .medium-zoom-overlay {
    opacity: 0.9 !important;
}

在.vitepress/theme/index.ts中引入使用样式文件:

import DefaultTheme from "vitepress/theme";
import { onMounted, watch, nextTick } from "vue";
import { useRoute } from "vitepress";
import mediumZoom from "medium-zoom";
import "./style/var.css";

// 图片缩放
export default {
  extends: DefaultTheme,

  setup() {
    const route = useRoute();
    const initZoom = () => {
      // 为所有图片增加缩放功能
      // mediumZoom('[data-zoomable]', { background: 'var(--vp-c-bg)' }); // 默认
      mediumZoom(".main img", { background: "var(--vp-c-bg)" }); // 不显式添加{data-zoomable}的情况下为所有图像启用此功能
    };
    onMounted(() => {
      initZoom();
    });
    watch(
      () => route.path,
      () => nextTick(() => initZoom())
    );
  },
};

缺陷:
只支持放大查看图片,其他缩放、翻页等功能都没有;
原图片像素太大图片不居中,样式混乱不好看。
不推荐!!!

插件:【v-preview-image】

  • 安装
npm i v-preview-image
  • 使用:
    在.vitepress/theme/index.ts中使用
import DefaultTheme from "vitepress/theme";
import { useRoute } from "vitepress";
import vPreviewImage from "v-preview-image";
import "./style/var.css";

// 图片缩放
export default {
  ...DefaultTheme,
  enhanceApp({app}){
    // 注册使用
    app.use(vPreviewImage)
  },
};

在markdown中:
需要给img加上点击事件$preview,并传入图片数组进行翻页查看

<img src="./images/image-01.png" @click="$preview(0,['./images/image-01.png,'/.images/image-02.png']"

缺陷:
这是一个vue插件,更适合在vue项目中使用;
虽然支持缩放、旋转、下一张图片等,但必须在markdown引入图片的地方写click事件,想要翻页查看文档图片,需要手动写入图片列表,十分麻烦!
不推荐在vitepress使用!!!

【推荐】插件:【vitepress-plugin-image-viewer

  • 安装
npm i vitepress-plugin-image-viewer
  • 使用:
    在.vitepress/theme/index.ts中使用
import DefaultTheme from "vitepress/theme";
import { useRoute } from "vitepress";
import imageViewer from "vitepress-plugin-image-viewer";
import "viewerjs/dist/viewer.min.css";
import "./style/var.css";

// 图片缩放
export default {
  ...DefaultTheme,
  setup() {
    // 获取路由
    const route = useRoute();
    // 使用
    imageViewer(route);
  },
};

这个插件的踩坑之路~

为什么一开始没发现使用这个插件呢?其实我一开始就用了,在外网开发都正常使用,结果搞到公司内网出问题了,所有又去找其他插件,就有了上面两种试错,是真不好用啊,然后我又回来研究这个插件到底哪出了问题!!

  • 遇到啥问题呢?
点击查看图片这个插件是生效了,但只有关闭按钮,没有渲染图片!查看控制台img元素都没有,只有一个空div。
并且会卡死,不能关闭预览窗口,只能刷新页面

在这里插入图片描述

到处找原因,后来在viewerjs的github下找到了相同问题!!

  • 解决方案:

    电脑-》设置-》动画-》打开windows中显示动画

在这里插入图片描述

优点
使用简单:只需要安装和index.ts文件配置,开箱即用!
功能完善:缩放、上下翻页、旋转、调整大小。
图片大小自适应。
强烈推荐!!好用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值