VUE3+TS使用OpenSeadragon学习之旅,实现多图片切换效果

1.官方网站:OpenSeadragon

2.使用npm下载插件:npm install openseadragon

3.在 index.html文件引入资源

javascript 复制代码
  <link rel="stylesheet" href="node_modules/openseadragon/build/openseadragon/openseadragon.css" />
  <script src="node_modules/openseadragon/build/openseadragon/openseadragon.min.js"></script>

4.组件使用(一张图片显示效果)

javascript 复制代码
1.引入OpenSeadragon 
import OpenSeadragon from "openseadragon"

2.存放图片的标签
 <div id="openseadragon1" class="w-full h-full"></div>

3.初始化实例
const viewer= OpenSeadragon({
        id: "openseadragon1",//标签id
        showNavigator: true, // 是否显示导航缩略图
        prefixUrl: "/public/openseadragon/images/", //插件小图标
        tileSource = {
          type: "image",//图片的类型
          url: '',//图片的url
        }
      })

5.显示多图片切换

javascript 复制代码
1.引入OpenSeadragon 
import OpenSeadragon from "openseadragon"

2.存放图片的标签
 <div id="openseadragon1" class="w-full h-full"></div>

3.初始化实例
const viewer: any = ref("")
const initOpenSeadragon = () => {
      viewer.value = OpenSeadragon({
        id: "openseadragon1",
        showNavigator: true, // 是否显示导航缩略图
        prefixUrl: "/public/openseadragon/images/", //插件小图标
      })
}

4.定义函数:加载不同图片
const loadImage = (imageUrl: any) => {
      viewer.value.close() // 清除之前加载的图像
      if (imageUrl) { //判断传进来的url是否有值
        const tileSource = {
          type: "image",
          url: imageUrl,
        }
        viewer.value.open(tileSource) // 设置新的tileSources并加载新图像
      } else {
        message.warning("未上传图片")
      }
}
5.在页面加载之后onMounted里获取请求,获取到相关数据后调用初始化方法initOpenSeadragon 
 let listUrl: any = ref({})
 onMounted(() => {
       const { code, data } = await API.getGrowthImageInfo()//发起请求
      if (code === 200) {
        const list = JSON.parse(data.successfulImageUrl)
        ......//处理数据等相关的
        initOpenSeadragon()//调用初始化方法initOpenSeadragon 
      }
 })

6.在点击切换按钮时调用loadImage方法
    loadImage(url)//url是指传图片url

注意 prefixUrl: "/public/openseadragon/images/", 插件小图标来自于官网下载包里面的images文件夹下,可自行放在vue项目的静态资源文件夹里

相关推荐
沉登c几秒前
Javascript客户端时间与服务器时间
服务器·javascript
持久的棒棒君4 分钟前
ElementUI 2.x 输入框回车后在调用接口进行远程搜索功能
前端·javascript·elementui
2401_8572979114 分钟前
秋招内推2025-招联金融
java·前端·算法·金融·求职招聘
一 乐18 分钟前
考研论坛平台|考研论坛小程序系统|基于java和微信小程序的考研论坛平台小程序设计与实现(源码+数据库+文档)
java·数据库·学习·考研·微信·小程序·源码
一 乐19 分钟前
租拼车平台|小区租拼车管理|基于java的小区租拼车管理信息系统小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·微信·notepad++·拼车
William_Edmund1 小时前
C++ 算法学习——1.8 悬线法
学习
朝九晚五ฺ1 小时前
【Linux探索学习】第三弹——Linux的基础指令(下)——开启新篇章的大门
linux·运维·学习
undefined&&懒洋洋1 小时前
Web和UE5像素流送、通信教程
前端·ue5
IM_DALLA1 小时前
【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL74
学习·fpga开发·verilog学习
王俊山IT2 小时前
C++学习笔记----8、掌握类与对象(五)---- 嵌套类与类中枚举
开发语言·c++·笔记·学习