vue中页面分页引导

2023-11-11

一:使用driver.js做页面分页引导

default: 先来看看默认引导的效果

可以根据自己的需求做页面样式上的修改

change: 修改修改如下:

移动端web端都可以用

接下来说一下具体的用法:

======================================================

1、npm 安装: npm install driver.js

如果项目中只有单个页面引导,只需要在单个页面中做配置就行

如果有多个页面需要做引导,直接在mian.js 里面配置即可

import Driver from "driver.js"

import "driver.js/dist/driver.min.css"

2、直接封装一下:new Driver({})

Vue.prototype.$Driver = new Driver({

    classname:"scoped class",// 为你的指示模块添加类名 如果你要取消 某一个按钮(比如:“上一步””下一步“,”完成“)的 这个类名还是要加上的

    animate:true, //在更改突出显示的元素时设置动画

    opacity: 0.65,//背景不透明度(0表示只有弹出窗口,没有覆盖)

    padding:10,//元素与边缘的距离

    allowClose:true,//单击覆盖是否应关闭

    overlayClickNext:false,//单击overlay click是否转到下一步

    doneBtnText:'完成',//最后一个按钮上的文本

    closeBtnText:'关闭', //此步骤的关闭”按钮上的文本

    nextBtnText:'下一步',//此步骤的下一步按钮文本

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

    showButtons:false,//不在页脚中显示控件按钮

    onReset: (data) => {}, // 引导结束触发

    onNext: (data) => {},// 引导进入下一步触发

})

 

3、然后需要配置一下具体的步骤steps,在需要引导页面的mounted中执行

4、其中driverStep就是配置的引导步骤,根据自己需求自定义配置,页面中引入下面配置就行 import driverStep from "./driverStep";
driverStepe内容如下

/**
 * 引导元素信息配置
 * 上一步下一步按钮文字都可以配置
 */
export default [
  {
    element: '#EHRCode',  //设置需要引导的元素id
    popover: {
      title: ' ',
      description: '描述信息',
      position: 'top',
      className: 'ehrcodestyle', //自定义样式
      nextBtnText: '(1/2)已知晓,下一个' //这里也可以自定义下一步按钮上的文字哦
    }
  },
  {
    element: '#SpareEmail',
    popover: {
      title: ' ',
      description: '描述信息',
      position: 'top',
      className: 'spareemailstyle',
      doneBtnText: '(2/2)我知道了'
    }
  }
];

这样就可以,样式根据自己的需求去动态修改即可

5、上面的id就是你需要去做引导的元素的id:如下

6、如果只需要提示一次,下一次进来不需要再提示了,可以把状态存储到cookie中

步骤一:首先你需要在当前引导页完的时候存储cookie,如果单页,在自己页面的onReset方法执行完之后存储cookie即可,多个页面引导的话 就是在main.js中的onReset方法中去检测当前页的引导完成了之后存储cookie,通过id检测来判断 data.getNode().id === '引导的id'

步骤二:存储完cookie之后,在当前引导页mounted中从cookie中获取数据,来判定是否需要再次弹出引导动画

7、案例:main.js中配置如下

Vue.prototype.$driver = new Driver({
  classname: "scoped-class",
  animate: true,
  opacity: 0.65,
  padding: 10,
  allowClose: false,
  overlayClickNext: false,
  showButtons: true,
  doneBtnText: '', // Text on the final button
  closeBtnText: '', // Text on the close button for this step
  stageBackground: 'transparent', // Background color for the staged behind highlighted element
  nextBtnText: '自定义', // Next button text for this step
  prevBtnText: '', // Previous button text for this step
  onReset: (data) => { // 引导结束触发
    // 这段代码目的是引导完成之后回到页面顶部
    let top = document.documentElement.scrollTop || document.body.scrollTop;
    let timer = setInterval(() => {
      let ispeed = Math.floor(-top / 5)
      top = document.documentElement.scrollTop = document.body.scrollTop = top + ispeed
      if (top === 0) {
        clearInterval(timer)
      }
    }, 20);

    //引导页完成
    if (data.getNode().id === 'SpareEmail') {
       //存储id为SpareEmail的cookie
    } else if (data.getNode().id === 'CardNumber') {
      //存储id为CardNumber的cookie
    }
  },
  onNext: (data) => { // 引导进入下一步触发
   
  },
})

mounted中获取cookie做判定即可

mounted() {
    this.$nextTick(() => {
      let driver = getCookie("CardNumber"); //获取存储的cookie
      if (!driver) {//获取不到,不存在则进行页面引导
        this.$driver.defineSteps(driverStep);
        this.$driver.start();
      }
    });
  },

OK了

 

交流

1、QQ群:可添加qq群共同进阶学习: 进军全栈工程师疑难解  群号:   856402057

2、公众号:公众号「进军全栈攻城狮」 ,对前端技术保持学习爱好者。我会经常分享自己所学所看的干货,在进阶的路上,共勉!

                                                  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue中页面分页引导 的相关文章

随机推荐

  • (三)2.自动控制原理 Time domain analysis and correct 二阶系统动能特性

    上面讲完了最简单的一阶系统动态性能指标 下面说说二阶的 1 二阶系统的标准形式 二阶系统的典型结构 由这个图 我们可以轻松算出他的开环传递函数 增益 闭环传递函数和增益 这里不手打了 在写二阶传递函数时 我们一般把它写成首一形 传递函数依然
  • WEB-5-TCP / IP协议

    TCP IP协议 一 应用层 二 传输层 1 UDP 协议 1 协议格式 2 特点 2 TCP 协议 1 协议格式 3 TCP 中的核心机制 1 确认应答机制 2 超时重传机制 3 连接管理机制 4 滑动窗口 5 流量控制 6 拥塞控制 7
  • Source Insight 4.0安装教程(PS:附安装包及卸载重新安装等注意事项)

    目录 一 Source Insight 4 0安装包 二 删除配置文件 初次安装忽略此步骤 1 清除注册表信息 2 删除全局配置信息 三 安装步骤 1 解压 2 安装 3 替换 4 破解 5 安装提示unable to open or cr
  • windows10 中英文切换状态无法显示解决办法

    菜鸟的电脑很早之前就有这个中英文状态无法显示的毛病 菜鸟一只想解决 但是没有去弄 前几天 菜鸟发现下载一个其他输入法 电脑自带的输入法的中英文切换就会自己出来 但是好景不长 这是治标不治本 今天菜鸟电脑又显示不出来中英文切换了 于是上网搜索
  • STM32程序死在HardFault_Handler的分析和解决

    最近开发STM32F070F6P6项目 发现程序老是运行不了 仿真发现 程序总是死在HardFault Handler 程序总是死在第二个初始化函数里面 上网查询资料发现 STM32出现HardFault Handler故障的原因主要有两个
  • 中国的互联网技术有多牛逼?

    中国的电商 网约车 共享单车 外卖等都居于全球第一 物流配送效率全球第一 表面上看起来这些都是互联网技术 在全球居于领先地位 然而古怪的是至今为止中国互联网唯一走向世界的只有Tik Tok 在中国以外的市场 互联网还是由谷歌 亚马逊等美国企
  • Web自动化测试流程:从入门到精通,帮你成为测试专家!

    Web应用程序在今天的软件开发中占据着越来越重要的地位 保证Web应用程序的质量和稳定性是非常必要的 而自动化测试是一种有效的方法 本文将介绍Web自动化测试流程 并提供代码示例 步骤一 选取测试工具 选择适合自己团队的自动化测试工具是很重
  • 如何生成1亿个手机号码?Python来教你。真实的面试题哦。

    案例解析 最近在网上看到一个python的面试题目 如何用Python生成1亿个手机号码 我第一眼看到的时候心想 这个还不简单 直接 random randint 1 999999999999 就完事了 但是马上就发现了这其中的错误 这个是
  • sql注入系列之Sqli-labs(less-8)

    判断注入点 http 192 168 81 210 sqli Less 8 id 1 id等于1的时候正常id等于1 的时候页面有改变 因此可以判断可能存在注入 并且是布尔型盲注 判断注入类型 输入1 and 1 1和1 and 1 2发现
  • MySQL字符串截取:左截取、右截取、按关键字截取

    1 从左开始截取字符串 语法 SELECT LEFT str len str 被截取的字符串 len 截取长度 示例 SELECT LEFT TF 8220210412003 1 10 结果为 TF 8220210 2 从右开始截取字符串
  • python使用matplotlib创建三维图时隐藏坐标轴、网格、背景的方法

    使用下面的代码创建一条空间直线 import numpy as np import matplotlib pyplot as plt 创建一个空白画布 fig plt figure 创建一个子图 ax fig add subplot pro
  • [-] \Navicat-Cracker NavicatCrackerDlg.cpp:463 ->Please Patch first Or Specified RSA private key

    报错信息 Navicat Cracker NavicatCrackerDlg cpp 463 gt hinese Can t Generate Activation Code Keygen HINT Please Patch first O
  • 【Mo 人工智能技术博客】文本挖掘之LDA主题模型

    文本挖掘之LDA主题模型 作者 郑培 引言 主题模型是文本挖掘的重要工具 近年来在工业界和学术界都获得了非常多的关注 在文本挖掘领域 大量的数据都是非结构化的 很难从信息中直接获取相关和期望的信息 一种文本挖掘的方法 主题模型 Topic
  • ReLU,Sigmoid,Tanh,softmax,pipeline【基础知识总结】

    一 ReLU Rectified Linear Activation Function 1 优点 2 缺点 3 补充 1 Leaky ReLUs 2 参数化修正线性单元 PReLU 3 随机纠正线性单元 RReLU 二 Sigmoid 1
  • echarts自适应父级盒子宽度

    这里写自定义目录标题 效果 手动改变窗口大小 echarts实现自动适应父级盒子宽度 1 在vue中安装一个插件element resize detector 这是一个元素调整大小检测器 npm install element resize
  • 微观的C/C++编译执行过程

    前言 相信能看到这篇文章的同学 是对C语言很热爱的人 最开始学习C语言的时候 我们大多数人都是用集成开发环境 VS VC devc 等 当我们把C语言源代码写好了之后 在集成开发工具中这里点一下 哪里点一下 代码就跑起来了 这种快乐的感觉的
  • Linux下node-sass安装失败的解决方法与简单使用

    记录一下安装node sass的过程 关于CSS是不是一门编程语言 这里不讨论 但是它没有变量 语句 函数 反正我觉得他不是编程语言 于是程序员们发明了CSS预处理器 css preprocessor 它是一种专门的编程语言 可以使用你会的
  • java经典算法题

    目录 1 Java多线程 写一下两个线程交替打印 0 100 的奇偶数 2 线程安全的单例模式 3 用两个栈实现队列 4 实现单链表反转操作 5 Java实现二分查找 6 冒泡排序 7 快速排序 快速排序的基本思想 8 Java单链表实现快
  • 类的设计方法

    1 类名首字母应该大写 字段 方法以及对象 句柄 的首字母应小写 对于所有标识符 其中包含的所有单词都应紧靠在一起 而且大写中间单词的首字母 例如 ThisIsAClassNamethisIsMethodOrFieldName若在定义中出现
  • vue中页面分页引导

    一 使用driver js做页面分页引导 default 先来看看默认引导的效果 可以根据自己的需求做页面样式上的修改 change 修改修改如下 移动端web端都可以用 接下来说一下具体的用法 1 npm 安装 npm install d