首页 前端知识 简单实用的Driver.js教程(vue)

简单实用的Driver.js教程(vue)

2024-08-10 00:08:32 前端知识 前端哥 952 231 我要收藏

Driver.js是什么?

当点击进这篇文章的同学,看到标题,脸上会出现大大的问号,Driver.js是什么?有什么用。别急接下来,我将来讲解,什么是Driver.js.

Driver.js 是一个强大的,轻量级,使用原生 JavaScript 引擎开发的库,用于在页面聚焦用户的关注点。它支持所有主流浏览器,并且可高度自定义。

以下为其官网:

https://driverjs.com/

食用指南(vue版)

快速入手

效果展示

我们先来看一下driver.js的效果

效果图的代码讲解(引入driver.js)

接下来,我们看看vue的代码

<template>
  <div class="slide">
        <div class="slide_part" id='first'>
          <p>First</p>
        </div>
        <div class="slide_part"  id='second'>
          <p>Second</p>
        </div>
      </div>
</template>

<script>
import { driver } from "driver.js";
import "driver.js/dist/driver.css";
export default {
  data() {
    return {
      arr: [{
        element: '#first', // 这是需要高亮的元素
        popover: { // 引导展示数据
          title: '标题', // 这是标题
        }
      },
      {
        element: '#second',
        popover: {
          title: '标题', // 这是标题
        }
      },
      ]
    }
  },
  mounted() {
const driverObj = driver({
  showProgress: true,
  steps:this.arr
});
driverObj.drive();
  }
}
</script>

从代码上面来看

html:

我们创建了两个div标签作为两个盒子,分别放进了两句话,Frist、Second.

js:

在js上面我们导入了driver.js的库,并在data里面写入table数组,里面放了两个对象,其中对象的结构分别为element属性(相应的标签的id/需要高亮的元素),popover对象(引导展示数据)里面又放了一个title属性(对相应标签的说明)。在钩子函数mounted中,我们创建了driver的实现类,这个类里面传递这几个属性,showProgress是否展示标签页,steps属性,告诉driver去对谁进行漫游。最后通过这个实现类的方法.drive(),去开启功能。

详细介绍

下载

官网提供了三种下载方式

# Using npm
npm install driver.js

# Using pnpm
pnpm install driver.js

# Using yarn
yarn add driver.js

导包

下载后,我们需要使用就得在对应的页面导包,如果全局都想要使用直接放main.js文件

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

使用

drive实例属性

我们先来谈一下:drive实例

创建实例

const driverObj = driver({里面写实例属性});
//或者这样写实例属性
driverObj.alloClose=true

实例属性介绍:

allowClose(bool):点击覆盖是否应该关闭

就是你鼠标点击其他地方会不会关闭显示效果

这是allowClose为true的时候,点击其他地方,这些页面引导就没了,如果是false你点击其他地方,它也还在

opacity(0-1):背景不透明度

这个没有什么好说明的

animate(bool):动画时改变突出显示的元素

就是在切换下一个需要引导的点的时候动画更加流畅

如果是false就会是这样效果,看着不流畅。默认true

padding:元素到周围边缘的距离

这个也没啥好说的

popoverOffset(int):弹窗与元素偏移距离

字面意思,你这个弹窗和元素距离多远喏

我把popoverOffset设置为100

发现偏移距离会很大

showProgress:是否显示弹窗进度

看到上面那张图1 0f 2了吧,你要是把这个设置成false,那个就没了

doneBtnText:最后一个按钮上的文本

doneBtnText:"羊羊羊"

nextBtnText:下一个按钮文本
prevBtnText:上一个按钮文本

上面nextBtnText与prevBtnText我放一起说

prevBtnText:"234",

nextBtnText:"123"

其实这里我有个疑惑,只有两个按钮嘛?因为我只引了两个阶段,如果我引三个阶段会发生上面?

我发现他好像就是把这两个按钮命名成下一个按钮和上一个按钮,所以上一个按钮一直叫“234”,下一个按钮一直叫“123”,想想drive.js的作用就是做新手引导的,似乎这样设计也没问题。

keyboardControl:允许通过键盘控制(escape键关闭,箭头键移动)

允许键盘控制喏

steps 属性(数组):(重点)

举个例子:

const stepDefinition = {
  element: '#some-item',       
  popover: {                    
    className: 'popover-class',
    title: 'Title',             
    description: 'Description', 
    showButtons: false,         
    closeBtnText: 'Close',      
    nextBtnText: 'Next',       
    prevBtnText: 'Previous',  
    popoverClass: "driverjs-theme",
  }
};
  • element:要突出显示的查询选择器字符串或节点

如上面代码,'#some-item',就是一个标签它的id叫some-item,我们要引导的东西就是这元素了,所以就写成 element: '#some-item',

  • popover

className:className来包装这个特定的步骤弹出窗口,除了驱动程序选项中的一般

classNametitle:弹出窗口上的标题

description:弹出窗口上的描述信息

showButtons:在页脚不显示控制按钮

closeBtnText:此步骤的关闭按钮上的文本

nextBtnText:此步骤的下一个按钮文本

prevBtnText:此步骤的上一个按钮文本

popoverClass:弹窗的自定义样式名

drive实例方法

常用方法介绍
const driver = new Driver(driverOptions);
 
const isActivated = driver.isActivated; 
driver.moveNext();     
driver.movePrevious(); 
driver.start(stepNumber = 0);  
driver.highlight(string|stepDefinition); 
driver.reset(); 
driver.hasHighlightedElement(); 
driver.hasNextStep(); 
driver.hasPreviousStep(); 
driver.preventMove();
 
const activeElement = driver.getHighlightedElement();
const lastActiveElement = driver.getLastHighlightedElement();
activeElement.getCalculatedPosition(); 
activeElement.hidePopover();  
activeElement.showPopover();  
 
activeElement.getNode();  

isActivated:检查驱动程序是否激活

moveNext:移动到步骤列表中的下一步

movePrevious:移动到步骤列表中的上一步

start:开始执行定义的步骤

highlight:使用查询选择器或步骤定义突出显示元素

reset:重置覆盖并清除屏幕

hasHighlightedElement:检查是否有突出显示的元素

hasNextStep:检查是否有下一步要进行

hasPreviousStep:检查是否有上一步要移动

preventMove:阻止当前移动。有用的' onNext '或' onPrevious ',如果你想;执行一些异步任务并手动移动到下一步

getCalculatedPosition:获取屏幕上当前突出显示的元素

getCalculatedPosition:获取活动元素的屏幕坐标

hidePopover:隐藏弹出窗口

showPopover:显示弹出窗口

getNode:获取该元素背后的DOM元素

highlight
const driverObj = driver({
  popoverClass: "driverjs-theme",
  stagePadding: 4,
});

driverObj.highlight({
  element: "#highlight-me",
  popover: {
    side: "bottom",
    title: "This is a title",
    description: "This is a description",
  }
})

看这个代码就懂,为啥我highlight()方法说和直接给steps放数组一样

退出时确认

覆盖,如果关闭覆盖,我们可以点击其他地方来退出,或者使用键盘的esc也可以退出,为了多一部在用户试图退出浏览时添加确认对话框或其他逻辑。我们可以利用onDestroyStarted钩子函数来做一次判断

 onDestroyStarted: () => {
    if (!driverObj.hasNextStep() || confirm("Are you sure?")) {
      driverObj.destroy();
    }
  },

Popover Position 弹出框位置

可以使用 sidealign 选项控制弹出框的位置。 side 选项控制将显示弹出框的元素的一侧, align 选项控制弹出框与元素的对齐。

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

const driverObj = driver();
driverObj.highlight({
  element: '#left-start',
  popover: {
    title: 'Animated Tour Example',
    description: 'Here is the code example showing animated tour. Let\'s walk you through it.',
    side: "left",
    align: 'start'
  }
});

注意这里面的side: 与 align: 可以通过下方的页面去试下面按钮的值分别对应side与align的值

https://driverjs.com/docs/popover-position

小demo

感谢各位能够看到这里,我这里准备了一份代码给各位,快去试试吧!!!!!

<template>
  <div>
  <input type="text" id="name" v-on:focus="w1">
  </div>
</template>

<script>
import { driver } from "driver.js";
import "driver.js/dist/driver.css";
export default {
  data() {
    return {
      driverObj: new driver({ popoverClass: "driverjs-theme",
      stagePadding: 0,}),
    }
  },
  methods: {
    w1() {
      this.driverObj.highlight({
    element: "#name",
    popover: {
      title: "Name",
      description: "Enter your name here",
    },
  });
    },
  },
}
</script>

转载请注明出处或者链接地址:https://www.qianduange.cn//article/15136.html
标签
评论
发布的文章

Jquery (第三章笔记)

2024-08-18 00:08:37

jquery实现tab切换简单好用

2024-08-18 00:08:35

jQuery Cookie 插件使用教程

2024-08-14 22:08:01

jQuery的DOM操作

2024-08-18 00:08:21

echarts显示中国地图

2024-08-18 00:08:11

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!