页面分布引导新手指引(driver.js)

news2025/1/21 20:24:16

页面分布引导(driver.js)

最近由于有一个需求——做新手指引,在新用户进入页面的时候提供指引和帮助,快速让用户熟悉页面的功能,但是为了不要过多影响现有的页面逻辑和样式,找到一款非常好用的工具driver.js:Driver.js是一个功能强大且高度可定制的基于原生JavaScript开发的新用户引导库。它没有依赖项,支持所有主要浏览器 !!!划重点:pc端和移动端均可使用

官网: driver.js

1、安装

yarn

yarn add driver.js 

npm

npm install driver.js --save

2、引入

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

3、使用

进行连续的指引

data() {
    return {
      steps: [
        {
          element: '.dialog',
          popover: {
            // side:'bottom',
            // align:'start',
            title: "dialog",
            description: '这是dialog',
            position: 'top',
            onNextClick:this.nextStep
          }
        },
        {
          element: '#step1',
          popover: {
            title: "one",
            description: '这是one',
            position: 'top'
          }
        },
        {
          element: '#step2',
          popover: {
            title: "two",
            description: '这是two',
            position: 'right'
          }
        },
        {
          element: '#step3',
          popover: {
            title: "three",
            description: '这是three',
            position: 'bottom'
          }
        },
        {
          element: '#step4',
          popover: {
            title: "step4",
            description: '这是three',
            position: 'bottom'
          }
        },
        {
          element: '#child',
          popover: {
            title: "child",
            description: '这是three',
            position: 'bottom'
          }
        },
        {
          element: '#hello',
          popover: {
            title: "hello",
            description: '这是hello',
            position: 'bottom'
          }
        },
      ]
    }
  },
this.driver = new driver({
        // allowClose: false,
        // popoverClass: 'driverjs-theme',
        showProgress:true,
        progressText:'{{current}}/{{total}}',
        doneBtnText: '完成', // 结束按钮的文字
        animate: true, // 动画
        stageBackground: '#ffffff', // 突出显示元素的背景颜色
        nextBtnText: '下一步', // 下一步按钮的文字
        prevBtnText: '上一步', // 上一步按钮的文字
        closeBtnText: '关闭', // 关闭按钮的文字
        // overlayColor:'#f40',
        steps: this.steps,
        stagePadding:10,
        onCloseClick:() => {
          console.log('Close Button Clicked');
          // Implement your own functionality here
          this.driver.destroy();
        },
      })
      this.driver.drive()

效果
在这里插入图片描述
在这里插入图片描述

4、API方法

const driver = new Driver(driverOptions);

const isActivated = driver.isActivated; // 检查driver是否激活Checks if the driver is active or not
driver.moveNext();     // 移动到步骤列表中的下一步 Moves to next step in the steps list
driver.movePrevious(); // 移动到步骤列表中的上一步 Moves to previous step in the steps list
driver.start(stepNumber = 0);  // 从指定的步骤开始 Starts driving through the defined steps
driver.highlight(string|stepDefinition); // 高亮通过查询选择器指定的或步骤定义的元素 highlights the element using query selector or the step definition
driver.reset(); // 重置遮罩并且清屏Resets the overlay and clears the screen
driver.hasHighlightedElement(); //检查是否有高亮元素 Checks if there is any highlighted element
driver.hasNextStep(); // 检查是否有可移动到的下一步元素 Checks if there is next step to move to
driver.hasPreviousStep(); // 检查是否有可移动到的上一步元素。Checks if there is previous step to move to

driver.preventMove();// 阻止当前移动。如果要执行某些异步任务并手动移动到下一步,则在“onNext”或“onPrevious”中很有用 Prevents the current move. Useful in `onNext` or `onPrevious` if you want to
// perform some asynchronous task and manually move to next step



const activeElement = driver.getHighlightedElement();// 获取屏幕上当前高亮元素 Gets the currently highlighted element on screen
const lastActiveElement = driver.getLastHighlightedElement();
activeElement.getCalculatedPosition(); // 获取活动元素的屏幕坐标Gets screen co-ordinates of the active element
activeElement.hidePopover();  // 隐藏弹窗Hide the popover
activeElement.showPopover();  // 显示弹窗Show the popover

activeElement.getNode();  // 获取此元素后面的DOM元素Gets the DOM Element behind this element
你可以使用各种各样的选项来实现你想要的一切。You can use a variety of options to achieve whatever you may want. 

5、steps选项

const stepDefinition = {
  element: '#some-item',        // 需要被高亮的查询选择器字符或Node。 Query selector string or Node to be highlighted
  popover: {                    // 如果为空将不会显示弹窗There will be no popover if empty or not given
    className: 'popover-class', // 除了Driver选项中的通用类名称之外,还可以指定包裹当前指定步骤弹窗的类名  className to wrap this specific step popover in addition to the general className in Driver options
    title: 'Title',             // 弹窗的标题 Title on the popover
    description: 'Description', // 弹窗的主体内容 Body of the popover
    showButtons: false,         // 是否在底部显示控制按钮 Do not show control buttons in footer
    closeBtnText: 'Close',      // 关闭按钮的文本 Text on the close button for this step
    nextBtnText: 'Next',        // 当前步骤的下一步按钮文本 Next button text for this step
    prevBtnText: 'Previous',    // 当前步骤的上一步按钮文本 Previous button text for this step
  }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/996688.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

golang-bufio 缓冲扫描

前面两篇博客,介绍了 bufio 包中的缓冲读和写(bufio.go),下面再来介绍一下缓冲扫描(scan.go)。这个扫描的是用来对缓存读的更高级封装,提供了一些更易用的方法。 缓冲扫描 Scanner 提供了一个…

电子技术基础(三)__第2章放大电路原理__英文简称

静态分析, 又称为直流分析, 用于求出电路的直流工作状态, 即l输入信号 。 一 . 先看几个英文符号 : 集电极及发射极间电压, 简称管压降 : 发射结电压降, 二. 接着看 加上Q点的英文简称 Q点: 放大电路的静态工作点&#…

【Spring面试】二、BeanFactory与IoC容器的加载

文章目录 Q1、BeanFactory的作用是什么?Q2、BeanDefinition的作用是什么?Q3、BeanFactory和ApplicationContext有什么区别?Q4、BeanFactory和FactoryBean有什么区别?Q5、说下Spring IoC容器的加载过程(※)Q…

《向量数据库》——向量数据库的使用场景有哪些?

向量数据库在许多应用领域都有广泛的用途,特别是那些需要存储、检索和分析向量数据的场景。以下是一些常见的向量数据库使用场景: 1、相似性搜索: 推荐系统:用于根据用户的历史行为或兴趣,搜索相似用户或物品,以提供个性化推荐。图像检索:允许用户通过图像查询相似的图像…

Leangoo领歌 -敏捷任务管理软件,任务管理更轻松更透明

​任务管理,简单易懂,就是对任务进行管理。那怎么可以更好进行任务管理呢?怎么样样可以让任务进度可视化,一目了然呢?有效的管理可以让我们事半功倍。 接下来我们看一下如何借助任务管理软件高效的做任务管理。 首先…

机器学习实战-系列教程6:SVM分类实战1(鸢尾花数据集/软间隔/线性SVM/非线性SVM/scikit-learn框架)项目实战、原理解读、代码解读

🌈🌈🌈机器学习 实战系列 总目录 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 SVM分类实战1 SVM分类实战2 支持向量机(Support Vector Machines,SVM),用于分类和…

开箱报告,Simulink Toolbox库模块使用指南(六)——S-Fuction模块(TLC)

文章目录 前言 Target Language Compiler(TLC) C MEX S-Function模块 编写TLC文件 生成代码 Tips 分析和应用 总结 前言 见《开箱报告,Simulink Toolbox库模块使用指南(一)——powergui模块》 见《开箱报告&am…

Unity中Shader抓取屏幕并实现扭曲效果实现

文章目录 前言一、屏幕抓取,在上一篇文章已经写了二、实现抓取后的屏幕扭曲实现思路:1、屏幕扭曲要借助传入 UV 贴图进行扭曲2、传入贴图后在顶点着色器的输入参数处,传入一个 float2 uv : TEXCOORD,用于之后对扭曲贴图进行采样3、…

【鲁棒电力系统状态估计】基于投影统计的电力系统状态估计的鲁棒GM估计器(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Orangepi Zero2 全志H616(一):配置初始化和启动流程

目录 一,Orangepi简单说明 ①为什么使用全志H616 ②基本特性 ③配套操作系统支持 二,刷机和系统启动 ①准备工具 ②登录系统 ● 开发板供电 ● 登录 ● 开发板上板载LED灯测试说明 ③修改登录密码 ④网络配置 ⑤SSH登陆开发板 三&#xff…

(二十六)大数据实战——kafka集群之Kraft模式安装与部署

前言 本节内容主要介绍kafka3.0版本以后,一种新的kafka集群搭建模式看kraft,在该模式下,kafka高可用不在依赖于zookeeper,用 controller 节点代替 zookeeper,元数据保存在 controller 中,由 controller 直…

产品路线图管理,实践如何管理产品路线图和路线图规划

​什么是产品路线图? 产品路线图是一个高层次的战略计划,它描述了产品在未来一段时间可能会如何发展和壮大。 产品路线图确保整个产品团队持续关注产品的目标,帮助产品负责人把握产品的战略方向,调整产品的优先级和产品规划。 …

【实践篇】Redis最强Java客户端Redisson

文章目录 1. 前言2. Redisson基础概念2.1 数据结构和并发工具2.1.1 对Redis原生数据类型的封装和使用2.1.2 分布式锁实现和应用2.1.3 分布式集合使用方法 2.2 Redisson的高级特性2.2.1 分布式对象实现和使用2.2.2 分布式消息队列实现和使用2.2.3 分布式计数器实现和使用 3. 参考…

hadoop伪分布模式配置

1、修改/usr/local/hadoop/etc/hadoop/core-site.xml和/usr/local/hadoop/etc/hadoop/hdfs-site.xml文件 core-site.xml内容 <configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><descr…

日志平台搭建第四章:Linux安装kibana

相关链接 https://www.elastic.co/cn/downloads/kibana https://artifacts.elastic.co/downloads/kibana/kibana-7.5.1-linux-x86_64.tar.gz 官网下载可能比较慢&#xff0c;下面提供下载地址 百度云链接&#xff1a;https://pan.baidu.com/s/1d9Cqr9EwHF94op90F57bww 提取码…

《微服务架构设计模式》第二章

文章目录 微服务架构是什么软件架构是什么软件架构的定义软件架构的41视图模型为什么架构如此重要 什么是架构风格分层式架构风格六边形架构风格微服务架构风格 为应用程序定义微服务架构识别操作系统根据业务能力进行拆分根据子域进行拆分拆分指导原则单一职责原则&#xff08…

idea的GsonFormatPlus插件教程

1 安装 插件 打开idea, File—>Setting—>Plugins,搜索 GsonFormatPlus 直接安装 2 json 转化为 实体类 2.1 新建一个类 2.2 点击右键 2.4 点击Format 生成注释

聊一下酱香拿铁,瑞幸与茅台强强联手

&#xff08;点击即可收听&#xff09; 这两天&#xff0c;酱香拿铁火爆朋友圈了的 为什么唯独酱香拿铁会火成这样&#xff0c;不知道有人思考过背后逻辑&#xff1f; 难道只是因为一个新出的拿铁咖啡吗&#xff1f; 奇葩咖啡那么多为什么都没有这个一出来就爆火。 联名本身就是…

BUUCTF内涵的软件 1

使用die查看文件信息&#xff0c;没有pe64就是pe32 运行看看 使用IDA打开文件 shift F12 打开字符串窗口 可能有人猜到了上面的 DBAPP{49d3c93df25caad81232130f3d2ebfad} 可能就是flag&#xff0c;但是我们保持做题的思路来得到这个flag 因为编码问题&#xff0c;这里显…

第29节-PhotoShop基础课程-滤镜库

文章目录 前言1.滤镜库2.Camera Raw滤镜 &#xff08;用来对图片进行预处理&#xff0c;最全面的一个&#xff09;3.神经滤镜&#xff08;2022插件 需要先下载&#xff09;4.液化&#xff08;胖-> 瘦 矮->高&#xff09;5.其它滤镜1.自适应广角2.镜头矫正 把图片放正3.消…