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隐藏


    相关文章
    |
    11月前
    |
    JavaScript
    Vue中如何实现兄弟组件之间的通信
    在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
    807 2
    |
    10月前
    |
    缓存 JavaScript
    vue中的keep-alive问题(2)
    vue中的keep-alive问题(2)
    680 137
    |
    人工智能 JavaScript 算法
    Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
    Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
    1476 0
    |
    JavaScript UED
    用组件懒加载优化Vue应用性能
    用组件懒加载优化Vue应用性能
    |
    人工智能 JSON JavaScript
    VTJ.PRO 首发 MasterGo 设计智能识别引擎,秒级生成 Vue 代码
    VTJ.PRO发布「AI MasterGo设计稿识别引擎」,成为全球首个支持解析MasterGo原生JSON文件并自动生成Vue组件的AI工具。通过双引擎架构,实现设计到代码全流程自动化,效率提升300%,助力企业降本增效,引领“设计即生产”新时代。
    859 1
    |
    JavaScript 安全
    在 Vue 中,如何在回调函数中正确使用 this?
    在 Vue 中,如何在回调函数中正确使用 this?
    605 0
    |
    JavaScript 前端开发 UED
    Vue 表情包输入组件实现代码及详细开发流程解析
    这是一篇关于 Vue 表情包输入组件的使用方法与封装指南的文章。通过安装依赖、全局注册和局部使用,可以快速集成表情包功能到 Vue 项目中。文章还详细介绍了组件的封装实现、高级配置(如自定义表情列表、主题定制、动画效果和懒加载)以及完整集成示例。开发者可根据需求扩展功能,例如 GIF 搜索或自定义表情上传,提升用户体验。资源链接提供进一步学习材料。
    886 1
    |
    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.
    1397 0
    |
    JavaScript
    vue实现任务周期cron表达式选择组件
    vue实现任务周期cron表达式选择组件
    1552 4
    |
    JavaScript 数据可视化 前端开发
    基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
    本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
    1845 78