管理用户焦点的前端3大顶级库

家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

今天给大家带来的主题是管理用户焦点的前端3大顶级开源库,话不多说,直接进入正题!

1. Shepherd.js

Shepherd 是一个 JavaScript 库,用于指导用户正常使用应用程序。 它使用另一个开源库 Floating UI 来呈现每个游览“步骤”的对话框。其中,Floating UI 可确保步骤永远不会超出屏幕或因溢出而被裁剪。

Shepherd 具有以下明显特征:

  • 无障碍支持:Shepherd 具有完整的键盘导航支持、焦点捕获以及通过 aria 属性实现的 a11y 合规性。
  • 高度可定制:Shepherd 风格保持简约,让开发者可以轻松定制外观和感觉,但仍然为开发者提供足够的空间,方便快速使用。
  • 框架支持:Shepherd 已支持与大量前端框架集成,比如: React、Ember、Angular、Vue.js、ES 模块或纯 Javascript 等等

Shepherd.js的使用非常简单,首先引入相关的资源:

<link rel="stylesheet" href="shepherd.js/dist/css/shepherd.css"/>
<script src="shepherd.js/dist/js/shepherd.min.js"></script>

接着通过下面的方式直接调用即可:

const tour = new Shepherd.Tour({
  defaultStepOptions: {
    cancelIcon: {
      enabled: true
    },
    classes: 'class-1 class-2',
    scrollTo: { behavior: 'smooth', block: 'center' }
  }
});

tour.addStep({
  title: 'Creating a Shepherd Tour',
  text: `Creating a Shepherd tour is easy. too!\
  Just create a \`Tour\` instance, and add as many steps as you want.`,
  attachTo: {
    element: '.hero-example',
    on: 'bottom'
  },
  buttons: [
    {
      action() {
        return this.back();
      },
      classes: 'shepherd-button-secondary',
      text: 'Back'
    },
    {
      action() {
        return this.next();
      },
      text: 'Next'
    }
  ],
  id: 'creating'
});
tour.start();

目前 Shepherd.js 在 Github 上通过 MTI 协议开源,有超过 11.3k 的 star、0.8k 的 fork,是一个值得关注的前端开源项目。

2. Driver.js

Driver.js 是功能强大、高度可定制的原生 JavaScript 引擎,可驱动用户在整个页面上的注意力,同时无外部依赖、轻量级、支持所有主流浏览器且高度可定制。

Driver.js 的典型特征包括:

  • 简单:使用简单,完全没有外部依赖。
  • 轻量级:与其他经过 +12kb gzip 压缩的库相比,仅 5kb gzip 压缩。
  • 高度可定制:拥有强大的 API,可以随心所欲地使用
  • 突出显示任何内容:突出显示页面上的任何(实际上是任何)元素
  • 丰富的功能介绍:为 Web 应用程序创建强大的功能介绍
  • 焦点转移器:为用户添加焦点转移器
  • 用户友好:一切都可以通过键盘控制
  • 友好的 TypeScript 支持:用 TypeScript 编写
  • 一致的行为:可在所有浏览器中使用
  • MIT 许可:免费供个人和商业使用

Driver.js 不仅仅是一个导航库,导航只是众多用例之一,Driver.js 可以在任何页面需要某种覆盖的地方使用, 一些常见的用例包括:

  • 通过解释如何使用产品并回答常见问题来吸引用户
  • 通过突出显示功能,可以消除干扰并将用户的注意力集中在重要的事情上
  • 为用户提供上下文帮助,解释如何使用产品并回答常见问题
  • 突出显示新功能,解释如何使用它们并确保用户不会错过它们

Driver.js 使用 Vanilla TypeScript 编写,具有零依赖性并且高度可定制。 它有几个选项允许开发者更改其行为方式,并且还提供了在突出显示、即将突出显示或取消选择元素时操作元素的钩子。另外,将 Driver.js 的大小与其他库进行比较,它是最轻量级的,gzip 后只有 ~5kb,而其他库则为 12kb 以上。

使用 Driver.js 也是非常简单,首先通过 NPM 安装 driver.js 或者引入CDN即可。

<script src="https://cdn.jsdelivr.net/npm/driver.js@1.0.1/dist/driver.js.iife.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/driver.js@1.0.1/dist/driver.css"/>

接着调用 Driver.js 的相关方法即可:

import { driver } from "driver.js";
import "driver.js/dist/driver.css";

const driverObj = driver();
driverObj.highlight({
  element: "#some-element",
  popover: {
    title: "Title",
    description: "Description"
  }
});

目前 Driver.js 在 Github 上通过 MTI 协议开源,有超过 15.5k 的 star、0.9k 的 fork、13.7k 的项目依赖量、是一个值得关注的前端开源项目。

3.Intro.js

Intro.js 是一个开源普通 Javascript / CSS 库,用于添加分步介绍或提示。

Intro.js API 的简单性可帮助开发者为产品开发高级入门教程, Intro.js 是轻量级的,只有 10kB 并且没有外部依赖!

Intro.js具有以下显著特征:

  • 便于使用:使用简单,且保持轻量,只有 10kB 并且没有任何外部依赖!
  • 可定制:Intro.js 提供了多种方法来配置产品入门并自定义导航的每一个步骤。
  • 开源:Intro.js 是免费且开源的,在 AGPL 许可下发布, 同时还提供商业许可,支持其他团队成功集成Intro.js。

目前 Intro.js 在 Github 上通过 AGPL 协议开源,有超过 22.1k 的 star、2.6k 的 fork,5.5k的项目依赖量、代码贡献者100+,是一个值得关注的前端开源项目。

Intro.js的使用也非常简单,可以使用 data-intro 和 data-title HTML 属性创建产品导览。只需将这些属性添加到元素并调用 introJs().start() 即可,比如下面的例子:

<div data-title="Welcome!" data-intro="Hello World! " class="card-demo">
  <div class="card shadow--md">
    <div class="card__image" data-intro="Intro.js can highlight on elements">
      <img
        src="..."
        alt="Image alt text"
        title="Logo Title Text 1"
      />
    </div>
    <div class="card__body" data-title="Farewell!" data-intro="And this is the last step!">
      <h4>Quaco Lighthouse</h4>
      <small>
        The Quaco Head Lighthouse is a well maintained lighthouse close to St.
        Martins. It is a short, beautiful walk to the lighthouse along the
        seashore.
      </small>
    </div>
  </div>
</div>

接着调用下面的方法即可:

// Intro.js scans the webpage and finds all elements with `data-intro` attribute
introJs().start();

4.本文总结

本文主要和大家聊聊管理用户焦点的前端3大顶级开源库,如:Shepherd.js 、Driver.js 、Intro.js。相信通过本文的阅读,大家对 Shepherd.js 、Driver.js 、Intro.js 会有一个初步的了解,同时也会有自己的看法。

因为篇幅有限,文章并没有过多展开,如果有兴趣,可以在我的主页继续阅读,同时文末的参考资料提供了大量优秀文档以供学习。最后,欢迎大家点赞、评论、转发、收藏!

参考资料

https://github.com/kamranahmedse/driver.js

https://github.com/shipshapecode/shepherd

https://shepherdjs.dev/

https://driverjs.com/

http://introjs.com/

https://driverjs.com/docs/installation/

原文链接:,转发请注明来源!