NPM 包 UniversalViewer 使用教程

UniversalViewer 是一款用于实现高交互式图片、地图、书籍等的可嵌入式 Web 阅读器的开源 JavaScript 库。它支持多语言、自由拓展,可以轻松帮助开发者完成复杂的图像处理和预览功能。在本篇文章中,我们将介绍如何使用 UniversalViewer 库。

安装

通过 npm 安装 UniversalViewer:

--- ------- --------------- ------

基础使用

以下是一个最基本的 UniversalViewer demo,你只需简单地编写一个 HTML 文件,引用 UniversalViewer 库,然后在 JavaScript 文件中一行代码即可实现阅读器的加载。

--------- -----
------
  ------
    ----- ----------------
    ---------------------- ------------
    ----- ---------------- --------------- ---------------------------
  -------
  ------
    ---- --------------
    ------- ---------------------- ----------------------------------
    ------- -----------------------
      --- -- - --- -----------------------------------------
      ----------
    ---------
  -------
-------

运行以上代码会呈现一个空白的页面,点击之后会跳转到空白页面,这是因为没有设置阅读器要加载的内容。我们接下来将逐步介绍如何使用 UniversalViewer 库加载不同类型的内容。

图像内容

导入图像需要基于 IIIF (国际互联网图像协议),我们可以将本地加载的图像上传到一个 IIIF 兼容的服务器上,然后通过 UniversalViewer 的 API 远程加载。IIIF 服务器可以是自己搭建的 Apache 或者 Nginx,ImageMagickOpenSeadragonIIIF-Image-Server 等多个软件都可以搭建一个 IIIF 服务器。

以下示例代码演示如何加载一个来自 harpersbazaarart.artron.net 的图像:

--------- -----
------
  ------
    ----- ----------------
    ---------------------- ------------
    ----- ---------------- --------------- ---------------------------
  -------
  ------
    ---- --------------
    ------- ---------------------- ----------------------------------
    ------- -----------------------
      --- ----------- - ------------------------------------------------------------
      --- -- - --------------
      -----------------------------
    ---------
  -------
-------

效果如下:

地图内容

加载地图内容同样需要 IIIF 协议,以下示例代码演示如何加载地图。

--------- -----
------
  ------
    ----- ----------------
    ---------------------- ------------
    ----- ---------------- --------------- ---------------------------
  -------
  ------
    ---- --------------
    ------- ---------------------- ----------------------------------
    ------- -----------------------
      --- ----------- - --------------------------------------------------------------
      --- -- - --------------
      -----------------------------
    ---------
  -------
-------

效果如下:

![Map manifest](https://user-images.githubusercontent.com/35194213/113790142-9d000480-977f-11eb-8f4d-85ad5c6dcNPM 包 UniversalViewer 使用教程.png)

书籍内容

UniversalViewer 还支持加载由 IIIF Presentation API 所描述的书籍类型的内容。以下示例演示如何加载一个书籍内容:

--------- -----
------
  ------
    ----- ----------------
    ---------------------- ------------
    ----- ---------------- --------------- ---------------------------
  -------
  ------
    ---- --------------
    ------- ---------------------- ----------------------------------
    ------- -----------------------
      --- ----------- - ------------------------------------------
      --- -- - --------------
      -----------------------------
    ---------
  -------
-------

效果如下:

拓展功能

UniversalViewer 不仅支持多种类型的内容,还可以实现各种自定义拓展功能,如自定义主题、控件、插件等。

自定义主题

UniversalViewer 提供了 API 用于自定义主题。以下示例演示如何修改主题颜色:

--------- -----
------
  ------
    ----- ----------------
    ---------------------- ------------
    ----- ---------------- --------------- ---------------------------
    -------
      -- ----- --
      -------- -
        ----------------- -----
      -
      ---------- -
        ----------------- -----
      -
      ------------ -
        ----------------- -----
      -
      -------- -
        ------ -----
      -
    --------
  -------
  ------
    ---- --------------
    ------- ---------------------- ----------------------------------
    ------- -----------------------
      --- ----------- - ------------------------------------------
      --- -- - --------------
      -----------------------------
    ---------
  -------
-------

效果如下:

自定义控件

UniversalViewer 可以方便地添加、移除、定制控件,以下示例演示如何添加一个控件到工具栏:

--------- -----
------
  ------
    ----- ----------------
    ---------------------- ------------
    ----- ---------------- --------------- ---------------------------
  -------
  ------
    ---- --------------
    ------- ---------------------- ----------------------------------
    ------- -----------------------
      --- ----------- - ------------------------------------------
      --- -- - --------------
      -----------------------------

      -- ---------
      --- ------ - --- -----------
        ------ ------ -------
        -------- ----------
        ------ ---------- -
          ------------ ---------
        -
      ---
      -----------------------------
    ---------
  -------
-------

效果如下:

自定义插件

在 UniversalViewer 中,插件可以实现自定义类型的内容、控件、行为等功能。以下示例演示如何加载并使用一个插件:

--------- -----
------
  ------
    ----- ----------------
    ---------------------- ------------
    ----- ---------------- --------------- ---------------------------
  -------
  ------
    ---- --------------
    ------- ---------------------- ----------------------------------
    ------- ---------------------- -------------------------
    ------- -----------------------
      --- ----------- - ------------------------------------------
      --- -- - --------------
      -----------------------------

      -- ----
      ------------------- -----------------
    ---------
  -------
-------

结语

UniversalViewer 是一个强大且自由度极高的阅读器组件,可以方便地实现多种类型的内容,也可以自定义各种拓展功能。希望这篇文章可以帮助大家使用 UniversalViewer 快速构建自己的阅读器项目。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/88754


猜你喜欢

  • npm 包 @segment/prevent-default 使用教程

    在前端开发过程中,我们经常需要进行事件绑定。事件绑定是实现交互效果的关键步骤之一。但有时,当我们对某个元素进行点击、滑动等一系列操作时,页面可能会出现意料之外的行为或效果。

    5 年前
  • npm 包 @segment/isodate-traverse 使用教程

    随着现代 Web 应用的广泛使用,前端开发者的技术选型和工作重心也在不断变化。其中,相对于后端开发而言,前端开发更加注重的是用户体验和交互。同时,前端也涉及到了很多的数据操作,涉及到时间的存储和操作就...

    5 年前
  • npm 包 @segment/is-meta 使用教程

    介绍 @segment/is-meta 是一个 npm 包,用于判断给定的对象是否是一个 meta 标签(HTML 中用于描述文档元信息的标签)。它使用了比较简单的逻辑和正则表达式来判断对象是否是 m...

    5 年前
  • npm 包 @segment/store 使用教程

    什么是 @segment/store @segment/store 是一个简单的 JavaScript 库,允许您在浏览器和 Node.js 环境中使用简单的 key-value 存储 API 管理本...

    5 年前
  • npm 包 @segment/canonical 使用教程

    前言 在 Web 开发过程中,我们经常需要处理网页的地址、链接和搜索引擎优化等问题。这些问题涉及到规范化、合并和排序 URL,这时候我们可以使用 npm 包 @segment/canonical 来解...

    5 年前
  • npm 包 @segment/utm-params 使用教程

    在前端开发中,跟踪用户来源是很重要的一件事情。要完成这个任务需要使用 Google Analytics 或其他类似的工具。然而,为了跟踪用户来源,我们需要从 URL 中获取一些参数,比如 utm_so...

    5 年前
  • npm 包 @segment/top-domain 使用教程

    什么是 @segment/top-domain @segment/top-domain 是一个 npm 包,可以用来获取当前页面所在的顶级域名。它可以帮助我们处理跨域问题,以及在使用多个子域名的情况下...

    5 年前
  • npm 包 @segment/send-json 使用教程

    在前端开发领域中,数据上报是非常重要的一个环节。@segment/send-json 是一款可以帮助我们方便地进行数据上报的 npm 包,本文将介绍其使用教程,并提供详细的示例代码供大家参考。

    5 年前
  • npm 包 @segment/protocol 使用教程

    在前端开发中,我们经常需要与其他平台进行数据交互。而 @segment/protocol 就是一个方便实现数据交互的 npm 包。它提供了一套协议来传输数据,而且使用也非常简便。

    5 年前
  • npm包@segment/localstorage-retry使用教程

    什么是@segment/localstorage-retry @segment/localstorage-retry是一个用于处理本地存储失败重试的npm包,主要用于前端开发中的数据处理。

    5 年前
  • npm 包 @segment/analytics.js-integration 使用教程

    在前端开发中,针对统计和分析数据的需求越来越多,而 @segment/analytics.js-integration 就是对数据统计和分析提供了良好支持的 npm 包。

    5 年前
  • npm 包 @segment/ad-params 使用教程

    在前端开发中,很多时候需要在网页上展示广告,而广告的参数通常都是非常复杂的。为了方便开发人员使用广告参数,@segment/ad-params 这个 npm 包应运而生。

    5 年前
  • npm 包 @ndhoule/pick 使用教程

    在前端开发中,经常需要从对象或数组中提取特定的属性或元素。这时候就可以使用 @ndhoule/pick 这个 npm 包。 什么是 @ndhoule/pick @ndhoule/pick 是一个 np...

    5 年前
  • @ndhoule/map npm 包 使用教程

    简介 在前端开发中,我们经常需要对数组进行操作,其中最常见的就是数组的映射 (map) 操作。而 @ndhoule/map 就是一个能够让你轻松进行数组映射操作的 npm 包。

    5 年前
  • npm 包 @ndhoule/keys 使用教程

    前言 在前端开发中,经常会遇到需要获取对象中所有键名的情况。该 npm 包 @ndhoule/keys 就是用于获取对象中所有键名的工具库,本文将为大家介绍该工具库的使用方法。

    5 年前
  • npm 包 @ndhoule/includes 使用教程

    什么是 @ndhoule/includes @ndhoule/includes 是一个 JavaScript 工具库,用于检查一个数组中是否包含特定的值,如果有则返回 true,反之返回 false。

    5 年前
  • npm 包 @ndhoule/foldl 使用教程

    简介 在前端开发中,经常需要对一个数组或对象进行一些复杂的操作,例如在数组中查找元素、计算数组元素的平均数、过滤数组中的无效数据等等。而这些操作在 JavaScript 中可以通过高阶函数来完成,其中...

    5 年前
  • npm 包 @ndhoule/extend 使用教程

    在前端开发中,我们经常需要对对象或数组进行合并或深拷贝操作。而 @ndhoule/extend 便是一个非常方便的 npm 包,可以帮助我们轻松地进行对象或数组的合并,还具有支持深拷贝的能力。

    5 年前
  • npm 包 @ndhoule/each 使用教程

    在前端开发中,难免会遇到需要遍历数组或对象的情况。在 JavaScript 中,常用的遍历方式有 for 循环和 forEach 方法。然而,当遍历的量比较大或者需要进行额外的处理时,这些方式可能会显...

    5 年前
  • npm 包 @ndhoule/defaults 使用教程

    在前端开发中,我们常常需要处理对象的默认属性值。这时候,一些优秀的 npm 包可以帮助我们解决这个问题。@ndhoule/defaults 就是其中一个优秀的 npm 包。

    5 年前

相关推荐

    暂无文章