vue中页面分页引导

简介: vue中页面分页引导

一:使用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天前
|
JavaScript
Vue学习之--------深入理解Vuex之多组件共享数据(2022/9/4)
这篇文章通过一个实际的Vue项目案例,演示了如何在Vuex中实现多组件间共享数据。文章内容包括在Vuex的state中新增用户数组,创建Person.vue组件用于展示和添加用户信息,以及在Count组件中使用Person组件操作的数据。通过测试效果展示了组件间数据共享和状态更新的流程。
Vue学习之--------深入理解Vuex之多组件共享数据(2022/9/4)
|
1天前
|
JavaScript
Vue学习之--------深入理解Vuex之模块化编码(2022/9/4)
这篇文章详细介绍了Vuex的模块化编码和命名空间的使用,旨在让代码更易于维护并提高数据分类的明确性。内容包括模块化和命名空间的概念、如何在store中配置模块、以及如何在组件中使用模块化的数据。文章通过实战项目案例,展示了如何拆分`store/index.js`文件,创建`count.js`和`person.js`模块,并在`Count.vue`和`Person.vue`组件中使用这些模块。最后,文章还提供了测试效果和一些使用注意点。
Vue学习之--------深入理解Vuex之模块化编码(2022/9/4)
|
1天前
|
JavaScript 前端开发 开发者
Vue学习之--------深入理解Vuex、原理详解、实战应用(2022/9/1)
这篇文章详细介绍了Vuex的基本概念、使用场景、安装配置、基本用法、实际应用案例以及注意事项,通过一个数字累加器的实战示例,帮助开发者深入理解Vuex的原理和应用。
|
1天前
|
存储 JavaScript API
vue后台管理权限码处理
【8月更文挑战第19天】vue后台管理权限码处理
8 0
|
1天前
|
JavaScript
Vue学习之--------深入理解Vuex之getters、mapState、mapGetters(2022/9/3)
这篇文章深入探讨了Vuex中的getters概念和用法,以及如何通过mapState、mapGetters、mapActions和mapMutations四个辅助函数简化组件中的Vuex状态访问和操作,通过实际项目案例展示了这些概念的应用和效果。
|
JavaScript 数据安全/隐私保护
work02_vue页面打印水印
work02_vue页面打印水印
318 0
work02_vue页面打印水印
|
4天前
|
JavaScript
Vue中如何设置在执行删除等危险操作时给用户提示(二次确认后执行对应的操作)
这篇文章介绍了在Vue项目中如何实现执行删除等危险操作时的二次确认机制,使用Element UI的`el-popconfirm`组件来弹出确认框,确保用户在二次确认后才会执行删除操作。
Vue中如何设置在执行删除等危险操作时给用户提示(二次确认后执行对应的操作)
|
4天前
|
JavaScript
如何创建一个Vue项目(手把手教你)
这篇文章是一篇手把手教读者如何创建Vue项目的教程,包括使用管理员身份打开命令行窗口、找到存放项目的位置、通过vue-cli初始化项目、填写项目信息、进入项目目录、启动项目等步骤,并提供了一些常见第三方库的引入方法。
如何创建一个Vue项目(手把手教你)
|
4天前
|
前端开发
StringBoot+Vue实现游客或用户未登录系统前、可以浏览商品等信息、但是不能购买商品或者加入购物车等操作。登录系统显示用户的登录名(源码+讲解)
这篇文章介绍了使用StringBoot+Vue实现用户登录状态判断的方法,包括前端加载用户信息和后端设置session的源码示例。
|
4天前
|
JavaScript 编译器
成功解决:Module build failed: Error: Vue packages version mismatch
这篇文章记录了解决Vue项目中遇到的"Module build failed: Error: Vue packages version mismatch"错误的步骤,原因是项目中Vue依赖的版本不一致,解决方法是删除`node_modules`后重新安装指定版本的Vue和`vue-template-compiler`,确保版本匹配,最终成功运行项目。
成功解决:Module build failed: Error: Vue packages version mismatch