广告
返回顶部
首页 > 资讯 > 前端开发 > 其他 >浅析vue项目中如何使用Intro.js实现用户指引功能
  • 751
分享到

浅析vue项目中如何使用Intro.js实现用户指引功能

前端Vue.js 2023-05-14 21:05:53 751人浏览 薄情痞子
摘要

Vue项目中怎么实现用户指引功能?下面本篇文章给大家介绍一下在vue项目中使用Intro.js实现用户指引功能的方法,希望对大家有所帮助!系统发布新版本或者上线新功能后,为方便用户快速了解新功能,通常需要添加一些用户指引界面。常见的用于实现

Vue项目中怎么实现用户指引功能?下面本篇文章给大家介绍一下在vue项目中使用Intro.js实现用户指引功能的方法,希望对大家有所帮助!

浅析vue项目中如何使用Intro.js实现用户指引功能

系统发布新版本或者上线新功能后,为方便用户快速了解新功能,通常需要添加一些用户指引界面。

常见的用于实现用户指引的插件有:Intro.js、Shepherd、vue-tour、Driver.js等。这些插件各有利弊,本文将基于vue项目介绍如何使用Intro.js实现用户指引。【学习视频分享:vue视频教程web前端视频】

什么是Intro.js

Intro.js 是一个开源javascript / CSS 库,用于添加分步介绍或提示。具备如下优点:

  • 无依赖:不需要其他任何依赖项。
  • 小且快:文件体积小,引导过程流畅。其中,JavaScript文件的整体大小为10KB, CSS为2.5KB。
  • 用户友好:提供了多个主题,可根据个人喜好选择使用。
  • 浏览器兼容性:兼容所有主流的浏览器,包括:Chrome、Firefox、Opera、Safari和IE浏览器。
  • 文档完善:文档中包含了要介绍的每个元素的内容及示例。

API & options

Intro.js可以实现tour(显式指引)和hint(隐式指引)两种用户指引形式(注:这两种译法是笔者自己取的,仅用于区分!!!)。

其中,显示指引更倾向于是对功能的简要介绍,其效果如下图所示,通常是由遮罩层、选中的页面元素、指引信息弹窗等共同组成。

image.png

隐式指引,则像是一种操作式的引导,鼓励用户参与其中,边学边用,其默认效果如下图所示,提示用户点击指定元素,随后会显示相应的提示信息或进入下一步操作等。

image.png

image.png

这两种形式的用法核心在于选择元素并预设指引信息。因此,本文将主要介绍tour的用法,hint的使用方法可以触类旁通,参考tour的用法及 官方文档中的demo 后可以轻松上手,便不在此赘述。

Tour API

Intro.js官方提供了很多Tour api,这里仅针对最常用的基础API做介绍,完整的API介绍可查看官方API文档。

introJs([targetElm])

用于创建一个 introJs 的对象,可选参数 targetElm 是一个字符串类型,指开始指引的特定元素,例如:“#intro-farm”。

introJs.start()

开始介绍定义的元素,即就是开始用户指引。

introJs.setOptions(options)

为已创建的 introJs 对象设置一组选项。参数 options 是一个对象类型,包括了指引中的所有信息,如:按钮显示文字、遮罩层透明度、提示文本等。

Tour options

常用option如下:

  • nextLabel:下一个的按钮文字
  • prevLabel:上一个按钮文字
  • skipLabel:跳过指引的按钮文字
  • doneLabel:完成按钮的文字
  • hidePrev:是否在第一步中隐藏“上一步”按钮;不隐藏,将呈现为一个禁用的按钮
  • hideNext:是否在最后一步中隐藏“下一步”按钮(同时会隐藏完成按钮);不隐藏,将呈现为一个禁用的按钮
  • exitOnEsc:点击键盘的ESC按钮是否退出指引
  • exitOnOverlayClick:点击遮罩层时是否退出介绍
  • showStepNumbers:是否显示步骤编号
  • disableInteraction:是否禁用高亮显示框内元素的交互
  • showBullets:是否显示面板的指示点
  • overlayOpacity:遮罩层的透明度 0-1之间
  • helperElementPadding:选中的指引元素周围的填充距离
  • steps:引导框内的相关参数配置,具体配置见下文

上述部分字段对应的内容如下图所示,更多完整options可查看 官方文档。

image.png

其中,doneLable 只会在最后一步指引中出现,会占据 nextLabel 的位置,因此,如果 hideNext 置为true时,最后一步中 nextLabeldoneLabel 均会被隐藏。

helperElementPadding 是图中高亮区域中白色边框部分(为区分该字段对应区域,这里特意给所选元素一个粉色的背景色)。

安装

Intro.js没有任何依赖项,只需要安装intro.js即可。

  • 使用npm:
npm install intro.js --save
  • 使用yarn
yarn add intro.js
git clone https://GitHub.com/usablica/intro.js.git

使用

方式一

如果用户指引内容比较简单并且固定,可以直接将属性写在html标签中,并调用introJs().start()。主要属性如下:

  • data-title:标题文字
  • data-intro:提示信息内容
  • data-step:步骤的编号(优先级)
  • data-tooltipClass:为提示定义CSS类
  • data-highlightClass:将CSS类附加到helperLayer
  • data-position:提示的位置,默认是bottom
  • data-scrollTo:滚动到的元素,element或tooltip。默认值为element。
  • data-disable-interaction:是否禁用与突出显示的框内的元素的交互
<template>
    <div data-title="Welcome!" data-intro="Hello World!">
        hello!
    </div>
</template>

<script>
import introJs from "intro.js"; // 引入intro.js
import "intro.js/introjs.css"; // intro.js的基础样式文件

export default {
    mounted () { 
        this.$nextTick(() => { 
            // Intro.js扫描页面并找到所有具有“data intro”属性的元素
            introJs().start();
        }) 
    }
}
</script>

方式二

当页面需要配置较多步骤或有特殊化配置时,可以采用第二种种方式。需要在JSON中自定义配置,即通过使用API -- introJs.setOptions(options)。

1、封装introConfig.js

实际使用过程中,可能会有多个场景需要做用户指引。为避免重复多次配置一些基础的选项内容,可以将基础项封装到一个公共的文件introConfig.js中,文件内容如下:

// src/utils/introConfig.js

import introJs from "intro.js";
import "intro.js/introjs.css"; // intro.js的基础样式文件
import "intro.js/themes/introjs-modern.css"; // 主题样式文件

const intro = introJs();

intro.setOptions({
  nextLabel: "下一步", // 下一个的按钮文字
  prevLabel: "上一步", // 上一个按钮文字
  skipLabel: "跳过", // 跳过指引的按钮文字
  doneLabel: "完成", // 完成按钮的文字
  hidePrev: false, // 是否在第一步中隐藏“上一步”按钮;不隐藏,将呈现为一个禁用的按钮
  hideNext: false, // 是否在最后一步中隐藏“下一步”按钮(同时会隐藏完成按钮);不隐藏,将呈现为一个禁用的按钮
  exitOnEsc: false, // 点击键盘的ESC按钮是否退出指引
  exitOnOverlayClick: false, // 点击遮罩层时是否退出介绍
  showStepNumbers: false, // 是否显示步骤编号
  disableInteraction: true, // 是否禁用高亮显示框内元素的交互
  showBullets: true, // 是否显示面板的指示点
  overlayOpacity: 0.7, // 遮罩层的透明度 0-1之间
  helperElementPadding: 10, // 选中的指引元素周围的填充距离
});

export default intro;

另外,Intro.js官方总共提供了6个不同的主题:Classic、Royal、Nassim、Nazanin、Dark、Modern,各主题的显示效果可在 官网查看。默认使用的是Classic,如果想使用其他主题,需引入 “intro.js/themes” 文件下对应的css文件,如下图。这里我用的是 “introjs-modern.css”。

主题结构.png

2、引入配置文件

在需要添加用户指引的文件中引入introConfig.js文件:

import intro from "@/utils/introConfig.js";

3、配置指引步骤并启动

在具体的使用文件中,通过 setOptions 的 steps属性配置指引步骤,它是数组类型,每一项都对应一个指引步骤,其中的字段含义如下:

element:定位到相应的元素位置,如果不设置,则默认展示在屏幕中央

title:指引弹窗的标题

intro:指引弹窗的文本内容,可插入html内容

示例如下:

methods: {
    guide() {
        intro.setOptions({
            steps: [
              {
                element: document.querySelector('#step1'), // 定位到相应的元素位置,如果不设置element,则默认展示在屏幕中央
                title: 'Welcome', // 标题
                intro: 'Hello World! ?' // 内容
              },
              {
                element: document.querySelector('#step2'),
                intro: '有关如何配置/自定义该项目的指南和方法,请查看vue-cli文档。'
              },
              {
                element: document.querySelector('#step3'),
                intro: '已安装的cli插件'
              },
              {
                element: document.querySelector('#step4'),
                intro: '基本链接'
              },
              {
                element: document.querySelector('#step5'),
                intro: '生态系统'
              },
              {
                title: "开始体验吧!",
                intro: `<img src="interesting.GIF" alt="" style="width: 100%;margin: auto" class="specialImg"/>`
              },
            ]
      });
      this.$nextTick(() => {
        intro.start();
      })
    }
},
mounted() {
    this.$nextTick(() => {
        this.guide();
    })
}

上述代码中,guide() 方法里配置了指引步骤和开始指引;并在 mounted 生命周期中调用 guide() 方法以展示指引内容。需要注意的是,为确保指引信息在原始页面渲染完毕后调用,需要在 $nextTick() 中调用 guide() 方法。

4、Demo效果

本demo仅用作讲解如何使用Intro.js,并未修改原始样式,比较简陋,还请包涵,实际使用时需要根据实际需要自定义样式。点击查看demo代码,效果如下图:

Gif_339.gif

注意事项

  • 必须在原始页面渲染完毕后再加载intro.js

    如果原始界面没有完全渲染完毕,可能存在intro.js无法找到指定元素的情况,可通过this.$nextTick()解决

  • 实际使用中可能存在一些复杂的交互场景,可借助一些API来解决

    introJs.onexit(providedCallback):退出用户指引时触发 introJs.onchange(providedCallback):步骤改变时触发 introJs.onbeforechange(providedCallback):步骤改变前触发 introJs.onafterchange(providedCallback):步骤改变后触发

  • 如果现有主题无法满足需求,可以通过设置tooltipClass来自定义样式

(学习视频分享:WEB前端开发编程基础视频)

以上就是浅析vue项目中如何使用Intro.js实现用户指引功能的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 浅析vue项目中如何使用Intro.js实现用户指引功能

本文链接: https://www.lsjlt.com/news/205714.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅析vue项目中如何使用Intro.js实现用户指引功能
    vue项目中怎么实现用户指引功能?下面本篇文章给大家介绍一下在vue项目中使用Intro.js实现用户指引功能的方法,希望对大家有所帮助!系统发布新版本或者上线新功能后,为方便用户快速了解新功能,通常需要添加一些用户指引界面。常见的用于实现...
    99+
    2023-05-14
    前端 Vue.js
  • vue中怎么使用Intro.js实现用户指引功能
    今天小编给大家分享一下vue中怎么使用Intro.js实现用户指引功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么是I...
    99+
    2023-07-04
  • vue如何使用driver.js实现项目功能向导指引
    目录介绍安装使用突出显示单个元素高亮和弹出窗口定位弹出窗口创建功能介绍异步操作配置定义步骤API方法实战效果介绍 https://github.com/kamranahmedse/d...
    99+
    2023-03-08
    vue向导指引 vue使用driver.js
  • vue怎么使用driver.js实现项目功能向导指引
    这篇文章主要介绍了vue怎么使用driver.js实现项目功能向导指引的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么使用driver.js实现项目功能向导指引文章都会有所收获,下面我们一起来看看吧。介...
    99+
    2023-07-05
  • vue项目中怎么使用canvas实现截图功能
    本文小编为大家详细介绍“vue项目中怎么使用canvas实现截图功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue项目中怎么使用canvas实现截图功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实现效...
    99+
    2023-07-02
  • Vue项目引用百度地图并实现搜索定位等功能(案例分析)
    目录一、效果图及功能点二、前期准备三、引入百度地图四、功能解析本文给大家介绍如何在vue项目中引用百度地图,并设计实现简单的地图定位、地址搜索功能。 Tip:本篇文章为案例分析,技术...
    99+
    2022-11-13
  • 如何在PHP项目中实现用户登录和注册功能?
    如何在PHP项目中实现用户登录和注册功能?在许多Web应用程序中,用户登录和注册功能是必不可少的。无论是电子商务网站、社交媒体还是论坛,用户登录和注册功能是为了确保用户身份安全,并为用户提供个性化的服务。本文将介绍如何在PHP项目中实现用户...
    99+
    2023-11-02
    PHP用户认证 PHP登录功能 PHP注册功能
  • 在Spring项目中使用 Hibernate如何实现一个分页功能
    本篇文章给大家分享的是有关在Spring项目中使用 Hibernate如何实现一个分页功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最关键的是运用Hibernate的que...
    99+
    2023-05-31
    spring hibernate 分页
  • Spring Boot 项目中如何使用 Python 实现文件下载功能?
    随着互联网技术的不断发展,文件下载已经成为了现代应用程序中的必备功能之一。在 Spring Boot 项目中,我们可以使用多种语言来实现文件下载功能,其中 Python 也是一个不错的选择。本文将为大家介绍如何在 Spring Boot ...
    99+
    2023-09-04
    文件 关键字 spring
  • 在vue项目中怎么使用codemirror插件实现代码编辑器功能
    这篇文章主要为大家展示了“在vue项目中怎么使用codemirror插件实现代码编辑器功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在vue项目中怎么使用c...
    99+
    2022-10-19
  • SSM项目中如何使用拦截器实现登录验证功能
    小编给大家分享一下SSM项目中如何使用拦截器实现登录验证功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!登录接口实现public User ...
    99+
    2023-06-28
  • 如何在vue项目中利用饿了么UI实现一个teambition筛选功能
    这篇文章主要为大家详细介绍了如何在vue项目中利用饿了么UI实现一个teambition筛选功能,文中示例代码介绍的非常详细,具有一定的参考价值,发现的小伙伴们可以参考一下:Vue的优点Vue具体轻量级框架、简单易学、双向数据绑定、组件化、...
    99+
    2023-06-06
  • 如何在java项目中实现一个递归调用功能
    本篇文章为大家展示了如何在java项目中实现一个递归调用功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现...
    99+
    2023-06-06
  • java项目中使用datatables如何实现一个带条件查询功能
    这篇文章给大家介绍java项目中使用datatables如何实现一个带条件查询功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用datatables自带后台查询 前台代码:<!DOCTYPE html>...
    99+
    2023-05-31
    java 条件查询 datatables
  • 在java项目中使用Demo如何实现一个文件上传功能
    在java项目中使用Demo如何实现一个文件上传功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。说到文件上传我们要做到:引入两个包:commons-fileupload-1....
    99+
    2023-05-31
    文件上传 demo java
  • 在Java项目中使用WebUploader如何实现一个文件上传功能
    本篇文章为大家展示了在Java项目中使用WebUploader如何实现一个文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。之前自己写小项目的时候也碰到过文件上传的问题,没有找到很好的解决方...
    99+
    2023-05-31
    java webuploader 文件上传
  • 如何在Android项目中使用RecyclerView实现上拉或下拉刷新功能
    这篇文章给大家介绍如何在Android项目中使用RecyclerView实现上拉或下拉刷新功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首页布局:activity_notice <&#63;xml v...
    99+
    2023-05-31
    recyclerview android recycle
  • 如何在Java项目中使用OCR tesseract实现一个图文识别功能
    如何在Java项目中使用OCR tesseract实现一个图文识别功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码:package com.zhy.test; im...
    99+
    2023-05-31
    java ocr tesseract ava
  • 在Java项目中使用递归如何实现一个文件读取功能
    今天就跟大家聊聊有关在Java项目中使用递归如何实现一个文件读取功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java递归列出目录下全部文件 import java.i...
    99+
    2023-05-31
    java 递归 文件读取
  • 如何在Android sdutio项目中利用Zxing实现一个扫码功能
    今天就跟大家聊聊有关如何在Android sdutio项目中利用Zxing实现一个扫码功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。最快的调用Zxing方法关联第三方库调用基础的...
    99+
    2023-05-31
    android studio zxing
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作