推荐一个页面引导库 driver.js

简介: 页面引导功能是 web 开发中常见的一个功能。通过页面引导功能,你可以让用户第一时间熟悉你的页面功能。今天给大家推荐一个页面引导库 driver.js。

1 简介

driver.js 是一款用原生 js 实现的页面引导库,上手非常简单,体积在 gzip 压缩下仅仅 5kb。

我们来看下如何使用 driver.js

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

const driverObj = driver({
   
   
  showProgress: true,
  steps: [
    {
   
    element: '.page-header', popover: {
   
    title: 'Title', description: 'Description' } },
    {
   
    element: '.top-nav', popover: {
   
    title: 'Title', description: 'Description' } },
    {
   
    element: '.sidebar', popover: {
   
    title: 'Title', description: 'Description' } },
    {
   
    element: '.footer', popover: {
   
    title: 'Title', description: 'Description' } },
  ]
});

driverObj.drive()

可以看到仅仅十几行代码,你就可以完成页面引导功能的编写。

  1. 首先引入 driver.js 库及其 css 文件
  2. 然后调用 driver 函数构造一个 driverObj 对象,通过 steps 参数编写你的引导步骤,element 为需要高亮的 DOM 元素或 DOM 对应的 CSS 选择器
  3. 最后调用 driverObj 的 drive 方法开启页面引导

让我们来看下效果:

1.gif

2 简单体验

接下来我们自己上手体验下,先来看下最终实现的效果。

2.gif

<p>《I LOVE YOU TOO》。漫画作者 CHOW HON LAM,马来西亚漫画家、插画家。</p>
<div>
  <button id="story1">故事1</button>
</div>
<div id="tour1" class="tour">
  <img width="500" height="auto" src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5efaea22e8794a31afe9f238109e6a90~tplv-k3u1fbpfcp-watermark.image?" />
  <div class="crocodile1"></div>
  <div class="koala1"></div>
</div>

html 内容包括一个开始按钮和漫画区域内容。

#tour1 {
   
   
  position: relative;
  display: none;
  margin-top: 32px;
}

.crocodile1 {
   
   
  position: absolute;
  left: 245px;
  top: 35px;
  width: 140px;
  height: 130px;
}

.koala1 {
   
   
  position: absolute;
  left: 145px;
  top: 130px;
  width: 100px;
  height: 30px;
}

样式这块主要是将要高亮的区域定位出来。

const driver = window.driver.js.driver;

$('#story1').click(() => {
   
   
  $('#tour1').css('display', 'inline-block')
  const driverObj = driver({
   
   
    showProgress: true,
    allowClose: false,
    steps: [
      {
   
    element: '.crocodile1', popover: {
   
    description: '这里有一只鳄鱼', side: "left", align: 'start' } },
      {
   
    element: '.koala1', popover: {
   
    description: '这里有三只考拉', side: "bottom", align: 'start' } },
      {
   
    element: '#tour1', popover: {
   
    description: '这是他们的故事《另一把雨伞》', side: "bottom", align: 'start' } }
    ]
  });
  driverObj.drive()
})

最后使用 driver.js 完成引导步骤编写即可。

3 主题定制

driver.js 支持主题定制功能,你可以修改企气泡卡片的样式。

主题定制有支持两种方式

  • 初始化时传入 popoverClass,基于这个类名调整气泡卡片的样式
const driverObj = driver({
   
   
  popoverClass: 'my-custom-popover-class'
})

// 气泡卡片各个元素的 class
.driver-popover {
   
   }
.driver-popover-arrow {
   
   }
.driver-popover-title {
   
   }
.driver-popover-description {
   
   }
.driver-popover-close-btn {
   
   }
.driver-popover-footer {
   
   }
.driver-popover-progress-text {
   
   }
.driver-popover-prev-btn {
   
   }
.driver-popover-next-btn {
   
   }
  • 直接修改气泡弹窗的 DOM 元素,在 onPopoverRender 这个钩子中进行操作
const driverObj = driver({
   
   
  onPopoverRender: (popover, {
   
    config, state }) => {
   
   
    const firstButton = document.createElement("button");
    firstButton.innerText = "Go to First";
    popover.footerButtons.appendChild(firstButton);

    firstButton.addEventListener("click", () => {
   
   
      driverObj.drive(0);
    });
  },
  steps: [
    // ..
  ]
})

上述代码在底部按钮区域加了个“返回第一页”的按钮。

最后看下效果:

3.gif

4 小结

driver.js 简单易上手,同时支持所有主流浏览器,也支持移动端展示。除了页面引导外,这个库也支持简单地对一个元素进行高亮,突出你想展示的内容。

最后 driver.js 支持很多配置能力,更多可以到官网查看示例。

目录
相关文章
|
5天前
|
JavaScript 前端开发 容器
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
21 0
|
5天前
|
JavaScript 前端开发 Java
springboot从控制器请求至页面时js失效的解决方法
springboot从控制器请求至页面时js失效的解决方法
17 0
springboot从控制器请求至页面时js失效的解决方法
|
5天前
|
前端开发 JavaScript 区块链
连接区块链节点的 JavaScript 库 web3.js
连接区块链节点的 JavaScript 库 web3.js
32 2
|
5天前
|
JavaScript 前端开发
springboot+layui从控制器请求至页面时js失效的解决方法
springboot+layui从控制器请求至页面时js失效的解决方法
17 0
|
3天前
|
移动开发 前端开发 JavaScript
前端高效开发JavaScript库!
前端高效开发JavaScript库!
|
3天前
|
JavaScript 前端开发 流计算
使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理
使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理
|
5天前
|
JavaScript 前端开发
JS实现网页页面的框架(demo)
JS实现网页页面的框架(demo)
12 1
|
5天前
|
JavaScript UED
js得禁止页面滚动
js得禁止页面滚动
13 1
|
5天前
|
JavaScript 前端开发
js选取页面元素的方法
js选取页面元素的方法
14 2
|
5天前
|
JavaScript 前端开发 IDE
【JavaScript与TypeScript技术专栏】TypeScript在JavaScript库与框架开发中的作用
【4月更文挑战第30天】TypeScript,微软开发的JavaScript超集,以其强类型和面向对象特性,正成为提升Web项目质量和效率的关键工具,尤其在库和框架开发中。它通过类型系统减少运行时错误,提供内置文档,便于重构,增强IDE支持,以及支持模块化。流行框架如React、Angular已支持TypeScript,未来有望成为开发高质量库和框架的标准语言。随着社区增长,TypeScript将在Web开发领域扮演更重要角色。

热门文章

最新文章