driver.js:一个功能强大且高度可定制新用户引导库

driver.js:一个功能强大且高度可定制新用户引导库

driver.js 是 一个功能强大且高度可定制新用户引导库,相比较于同类型功能库 Intro.js[1],driver.js 遵循 MIT 协议,可以免费商用。

官网地址:https://driverjs.com/

下面我们就来介绍 driver.js 的基础使用。

安装

driver.js 支持 npm 包(npm install driver.js) + CDN 方式使用,为了方便,我们以 CDN 方式来说明使用。HTML 中引入 driver.js 相关的 JS 和 CSS 资源就行。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <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" />
  </head>

  <body>
    <script>
      // your code here
    
</script>
  </body>

</html>

再加点简单的样式。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <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" />
  <style>
    body {
      min-height100vh;
      overflow: hidden;
    }

    .nav {
      display: flex;
      gap1rem;
    }

    .container {
      max-width768px;
      margin0 auto;
      padding2rem 1rem;
    }
  
</style>
</head>

<body>
  <div class="container">
    <div class="nav">
      <a href="https://Github.com/kamranahmedse/driver.js">Github</a>
      <a href="https://github.com/kamranahmedse/driver.js/issues">Issues</a>
      <a href="https://github.com/kamranahmedse/driver.js/blob/master/LICENSE">License</a>
    </div>
    <div class="main">
      <h1>Hello Driver.js</h1>
      <div class="content">
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloribus, quisquam!</p>
      </div>
    </div>
  </div>


  <script>
    // your code here
  
</script>
</body>

</html>

查看效果。

driver.js:一个功能强大且高度可定制新用户引导库

然后,我们就可以通过 window 下挂在的 window.driver.js.driver 变量使用 driver.js 了。

<script>
  const d = driver.js.driver

  // your code here
</script>

简单使用

我们先选中包含“Hello Driver.js”文本的 <h1> 标签看看效果。

<script>
  const d = driver.js.driver

  // (1)
  d().highlight({ // (2)
    elementdocument.querySelector('h1'), // (3)
    popover: { // (4)
      title'Hello Driver.js',
      description'This is a popover description',
    }
  })
</script>

(1) 首先初始化 Driver.js 实例对象,然后调用高亮方法 d().highlight()
(2) 高亮方法内部接收一个对象选项参数
(3) 通过 element 字段指定高亮元素
(4) 通过 popover 对象指定指引文案,文案分标题和描述部分 { title: 'xx', description: 'xx' }

下面来看下效果。

driver.js:一个功能强大且高度可定制新用户引导库

效果还是不错的。

多个元素

当然,我们还可以高亮多个元素,这部分的 API 就跟前一步不太一样了。

<script>
  const d = driver.js.driver

  d({
    steps: [
      {
        elementdocument.querySelector('h1'),
        popover: {
          title'Hello Driver.js',
          description'This is a popover description',
        }
      },
      {
        elementdocument.querySelector('.nav'),
        popover: {
          title'Menu',
          description'This is menu's description',
        }
      }
    ]
  })/* (1) */.drive() // (2)
</script>

(1) 针对高亮多个元素,我们在初始化 Driver.js 实例对象的时候,就要传入包含 steps 数组的配置对象 d({ steps: [] }),steps 中的每个成员都是前一步传入 highlight() 方法的参数对象 { element: x, popover: {} }
(2) 这里就不调用 highlight() 方法了,直接开车 dirve()

driver.js:一个功能强大且高度可定制新用户引导库

多了一个到前一步、下一步的导航。

driver.js:一个功能强大且高度可定制新用户引导库

点击 Done 后,导航就结束了。

当然,我们在初始化 Driver.js 实例对象时,还可以传入 showProgress: true 参数,展示当前导航进度。

<script>
  const d = driver.js.driver

  d({
+    showProgress: true,
     steps: [
       // ....
     ]
  }).drive()
</script>

查看效果:

driver.js:一个功能强大且高度可定制新用户引导库

中文国际化

因为 Driver.js 组件内置是英文,我们也可以初始化 Driver.js 实例对象的时候,将上一步/下一步/完成按钮的文本你设置中文的。

<script>
  const d = driver.js.driver

  d({
     showProgress: true,

+   // Text to show in the buttons. `doneBtnText`
+    // is used on the last step of a tour.
+    nextBtnText: '下一步',
+    prevBtnText: '上一步',
+    doneBtnText: '完成',
     
     steps: [
       // ....
     ]
  }).drive()
</script>

查看效果:

driver.js:一个功能强大且高度可定制新用户引导库

前端框架中使用

Driver.js 没有针对特定前端框架的封装,不过想要在前端框架中引入也比较简单。以 React 为例。

// Import the required JavaScript and CSS on top of the component
import * as Driver from 'driver.js'// (1)
import 'driver.js/dist/driver.min.css'; (1)

// In your react component
useEffect(() => { // (2)
  // Run Driver on component mount

  // then add a click handler or however you
  // might want to trigger it and initialize the Driver
  const driver = new Driver();
  driver.highlight({
    element: '#title-item',
    stageBackground: 'blue'
  });
}, []);

(1) 首先,我们以 npm 包方式安装并引入 Driver.js
(2) 在组件挂载完成后,初始化 Driver.js 实例对象,指定想要高亮的元素的就行了

总结

以上就是 Driver.js 基础使用,官网还提供了很多样例[2]可以参考,另外完整 API 定义可以参考这里[3]

References

[1]

Intro.js: https://introjs.com/

[2]

很多样例: https://driverjs.com/docs/installation

[3]

参考这里: https://driverjs.com/docs/api


原文始发于微信公众号(写代码的宝哥):driver.js:一个功能强大且高度可定制新用户引导库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/243816.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!