vue 中使用vue-introjs做引导动画

简介: vue 中使用vue-introjs做引导动画

先看页面效果:

1、不做任何样式修改,vue-introjs默认的样式效果如下:可以配置title,跳过,上一步,下一步等

2、修改修改样式,根据自己需求去做效果如下:

web端和h5都可以使用,具体用法如下:

一、npm安装

vue-introjs 是在 Vue 中绑定 intro.js 所使用的。vue-introjs 中没有内置 intro.js,所以在使用前请确保已安装 intro.js

npm i intro.js
npm i vue-introjs

二、webpack配置:在webpack的plugins中做以下配置

 plugins: [
    // other modules
    new webpack.ProvidePlugin({
      'introJs': ['intro.js']
    })
 ],

三、main.js中引入

安装了 intro.js 之后,webpack.ProvidePlugin 将会使用它,所以不需要在 src/main.js 中使用 import introJs from 'intro.js' 来引用。

但是需要在main.js中引入使用vue-introjs

import VueIntro from 'vue-introjs';
Vue.use(VueIntro); 
import 'intro.js/introjs.css';

四、页面中使用:需要在页面渲染完成后,使用,下面steps中配置需要引导元素的element:id或者类名即可,disableInteraction: true,与本身元素不关联,防止引导期间可以操作输入等

mounted() {
    this.$nextTick(() => {
      this.initIntro();
    });
  },
  methods: {
    initIntro() {
      let steps = [
        {
          element: "#EHRCode",
          intro:"介绍信息",
          position: "right"
        },
        {
          element: "#SpareEmail",
          intro:"介绍信息",
          position: "right"
        }
      ];
      var intro = introJs();
      intro.setOptions({
        prevLabel: "上一步",
        nextLabel: "下一步",
        skipLabel: "跳过",
        doneLabel: "完成",
        tooltipPosition: "bottom" /* 引导说明框相对高亮说明区域的位置 */,
        hidePrev: "true", //隐藏第一步中的上一个按钮
        tooltipClass: "xxx" /* 引导说明文本框的样式 */,
        highlightClass: "xxxxx" /* 说明高亮区域的样式 */,
        exitOnOverlayClick: false /* 是否允许点击空白处退出 */,
        showStepNumbers: false /* 是否显示说明的数据步骤*/,
        keyboardNavigation: false /* 是否允许键盘来操作 */,
        showButtons: true /* 是否按键来操作 */,
        showBullets: false /* 是否使用点点点显示进度 */,
        showProgress: true /* 是否显示进度条 */,
        scrollToElement: true /* 是否滑动到高亮的区域 */,
        overlayOpacity: 0.8 /* 遮罩层的透明度 */,
        positionPrecedence: [
            "bottom",
            "top",
            "right",
            "left"
        ] /* 当位置选择自动的时候,位置排列的优先级 */,
        disableInteraction: true, /* 是否禁止与元素的相互关联 */
        steps:steps
      });
      intro.oncomplete(() => {
        //点击结束按钮后执行的事件
        console.log("oncomplete");
      });
      intro.onexit(() => {
        //点击跳过按钮后执行的事件
        console.log("onexit");
      });
      intro.onchange(() => {
        //点击下一步执行的事件
        console.log("onchange");
      });
      intro.start();
    },
}

五、关键字:setOption 主要参数如下:

     /* 下一步按钮的显示名称 */
          nextLabel: 'Next →',
          /* 上一步按钮的显示名称 */
          prevLabel: '← Back',
          /* 跳过按钮的显示名称 */
          skipLabel: 'Skip',
          /* 结束按钮的显示名称 */
          doneLabel: 'Done',
          /* 引导说明框相对高亮说明区域的位置 */
          tooltipPosition: 'bottom',
          /* 引导说明文本框的样式 */
          tooltipClass: '',
          /* 说明高亮区域的样式 */
          highlightClass: '',
          /* 是否使用键盘Esc退出 */
          exitOnEsc: true,
          /* 是否允许点击空白处退出 */
          exitOnOverlayClick: true,
          /* 是否显示说明的数据步骤*/
          showStepNumbers: true,
          /* 是否允许键盘来操作 */
          keyboardNavigation: true,
          /* 是否按键来操作 */
          showButtons: true,
          /* 是否使用点点点显示进度 */
          showBullets: true,
          /* 是否显示进度条 */
          showProgress: false,
          /* 是否滑动到高亮的区域 */
          scrollToElement: true,
          /* 遮罩层的透明度 */
          overlayOpacity: 0.8,
          /* 当位置选择自动的时候,位置排列的优先级 */
          positionPrecedence: ["bottom", "top", "right", "left"],
          /* 是否禁止与元素的相互关联 */
          disableInteraction: false,
          /* 默认提示位置 */
          hintPosition: 'top-middle',
          /* 默认提示内容 */
          hintButtonLabel: 'Got it'


    注意:样式可以根据自己的需求做覆盖,显示影藏某些按钮可以配置或用js隐藏


    相关文章
    |
    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学习之--------路由(Router)的基本使用(1)(2022/9/5)
    这篇文章是关于Vue-router路由的基本使用教程,涵盖了安装配置、应用插件、编写路由规则、实现页面跳转和高亮显示,以及一些使用中的注意点和项目实际应用案例。
    Vue学习之--------路由(Router)的基本使用(1)(2022/9/5)
    |
    1天前
    |
    缓存 JavaScript
    Vue学习之--------多级路由的使用(2)(2022/9/5)
    这篇文章介绍了在Vue中实现多级路由缓存的方法,包括在路由配置中添加meta属性以启用缓存,使用keep-alive组件包裹需要缓存的视图,以及在Vuex中管理缓存视图列表的逻辑。
    Vue学习之--------多级路由的使用(2)(2022/9/5)
    |
    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状态访问和操作,通过实际项目案例展示了这些概念的应用和效果。
    |
    4天前
    |
    JavaScript
    Vue中如何设置在执行删除等危险操作时给用户提示(二次确认后执行对应的操作)
    这篇文章介绍了在Vue项目中如何实现执行删除等危险操作时的二次确认机制,使用Element UI的`el-popconfirm`组件来弹出确认框,确保用户在二次确认后才会执行删除操作。
    Vue中如何设置在执行删除等危险操作时给用户提示(二次确认后执行对应的操作)
    |
    JavaScript 测试技术 容器
    Vue2+VueRouter2+webpack 构建项目
    1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
    1030 0
    |
    4天前
    |
    JavaScript
    如何创建一个Vue项目(手把手教你)
    这篇文章是一篇手把手教读者如何创建Vue项目的教程,包括使用管理员身份打开命令行窗口、找到存放项目的位置、通过vue-cli初始化项目、填写项目信息、进入项目目录、启动项目等步骤,并提供了一些常见第三方库的引入方法。
    如何创建一个Vue项目(手把手教你)