intro.js结合vue开发,项目实战

451 阅读2分钟

1.前言

最近项目里需要添加新人指引的功能,对项目而言更加智能化,对于新手用户而言可以更快更方便的使用项目,新手指引一般是对项目的流程的梳理,按照步骤进行业务的梳理和开发,前提是需要配合后端同学进行用户第一次登陆的验证,用户只需要一次提示,后续登陆不再需要提醒。

2.intro.js介绍

官网地址

https://www.dowebok.com/demo/2013/35/ 国内地址

introjs.com/#commercial  国外需要付费

使用简单

引入 js 和 css,然后在代码中加入步骤和介绍。

快速小巧

7 KB 的 JavaScript 和 3 KB CSS,就是全部。

免费开源

免费和开源(包括商业用途),MIT许可证下。

键盘加鼠标导航

鼠标或键盘 , , ENTER 导航,ESC 键退出。

浏览器兼容

目前兼容 Firefox、Chrome 和 IE8,后续版本将会提供更好的兼容。

3.使用

安装

npm install intro.js --save

3.1新建一个intro.config.js文件配置

import introJs from 'intro.js';import 'intro.js/introjs.css'const introObj = introJs();export default introObj;

3.2引入

import * as Intro from './introJs.config.js';

3.3使用

  mounted() {    // 配置    setTimeout( () => {        Intro.setOptions({            steps: [                {                element: '#step', // 目标元素                intro:                    '欢迎使用实时看板<br /><br />实时看板挂载公司业绩播报大屏、各部门业务驾驶舱、定制化看板等实时看板,点击菜单即可查看', // 提示文本                position: 'right', // 提示位置                },            ],        });        this.$nextTick( () => {            // 开始            Intro.start();        });    }, 300);  }

3.4页面配置id

<template slot="title">            <div :id="root.id===8?'step':''">            <i :class="root.icon"></i>            <span>{{ $t(root.label) }}</span>            </div>          </template>

3.4卸载

    Intro.onexit(function () {
           // 其他操作
         })

4.第二种是使用方法

4.1 html部分

 <ul>
        <li :data-step="list.step" :data-intro="list.intro" :data-position="list.position" :data-disable-interaction="true">测试1</li>
        <li :data-step="list.step1" :data-intro="list.intro1" :data-position="list.position1":data-disable-interaction="true">测试2</li>
    </ul>

4.2js部分

import * as Intro from './introJs.config.js';
export default {
    data () {
        list: {
   step: '1',
            intro: '第一部分',
            position: 'top',

   step1: '2',
            intro: '第二部分',
            position: 'top'

        }
    },
    mounted () {
        if (!localStorage.getItem('isShowHelp')) {
          this.$nextTick(() => {
            // 开始
            Intro.start()
          })
          // 退出引导回调函数
          Intro.onexit(function () {
            localStorage.setItem('isShowHelp', 1)
          })
        }
    }
}

5.配置中英文

nextLabel: '下一个', // 下一个按钮文字

prevLabel: '上一个', // 上一个按钮文字

skipLabel: '跳过', // 跳过按钮文字

doneLabel: '立即体验',// 完成按钮文字

hidePrev: true, // 在第一步中是否隐藏上一个按钮

hideNext: true, // 在最后一步中是否隐藏下一个按钮

exitOnOverlayClick: false, // 点击叠加层时是否退出介绍

showStepNumbers: false, // 是否显示红色圆圈的步骤编号

disableInteraction: true, // 是否禁用与突出显示的框内的元素的交互,就是禁止点击

showBullets: false // 是否显示面板指示点