当前位置: 首页 > news >正文

vue+intro.js实现引导功能

前言:

        使用 intro.js这个插件,来实现一个引导性的效果,适用场景,比如:新手引导页,操作说明等等

效果图:

官网地址:点我

实现步骤:

1、安装
npm install intro.js --save
pnpm/cnpm  用法一样yarn add intro.js
2、使用方法1,新建一个单独vue组件
template部分:
<template><div class='card-demo'>我是界面写入的元素</div>
</template>
js部分:
import intro from "intro.js"  // introjs库
import "intro.js/introjs.css" // introjs默认css样式
data() {return {option: {// 参数对象prevLabel: "上一步",nextLabel: "下一步",skipLabel: "跳过",doneLabel: "完成",tooltipClass: "intro-tooltip" /* 引导说明文本框的样式 */,// highlightClass: 'intro-highlight', /* 说明高亮区域的样式 */exitOnEsc: true /* 是否使用键盘Esc退出 */,exitOnOverlayClick: false /* 是否允许点击空白处退出 */,keyboardNavigation: true /* 是否允许键盘来操作 */,showBullets: false /* 是否使用点显示进度 */,showProgress: false /* 是否显示进度条 */,scrollToElement: true /* 是否滑动到高亮的区域 */,skipHighlight: true,overlayOpacity: 0.5, // 遮罩层的透明度 0-1之间positionPrecedence: ["bottom","top","right","left",] /* 当位置选择自动的时候,位置排列的优先级 */,disableInteraction: false /* 是否禁止与元素的相互关联 */,hidePrev: true /* 是否在第一步隐藏上一步 */,hideNext: false /* 是否在最后一步隐藏下一步 */,steps: [] /* steps步骤,可以写个工具类保存起来 */,},}
}
methods:{init(){let steps= [{title: 'Welcome',intro: 'Hello World! 👋'},{ // 图片的可以展示intro: '<img src="https://i.giphy.com/media/ujUdrdpX7Ok5W/giphy.webp" onerror="this.onerror=null;this.src=\'https://i.giphy.com/ujUdrdpX7Ok5W.gif\';" alt="">'},{ // 可以指定界面上的元素,然后显示指定内容element: document.querySelector('.card-demo'),intro: 'This step focuses on an element'}]introJs().setOptions({...this.option,// 配置属性steps: steps // 每一步展示的内容}).oncomplete(() => {    console.log("点击结束按钮后执行的事件")    }).onexit(() => {    console.log("点击跳过按钮后执行的事件")    }).onbeforeexit(() => { console.log('确认完毕之后执行的事件')    }).start()},}
mounted(){this.init()
}
3、使用方法2
  • 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部分:
<template><div data-title="test1" data-intro="intro-test1" data-step='1'>第一步</div><div data-title="test2" data-intro="intro-test2" data-step='2'>第二步</div><div data-title="test3" data-intro="intro-test3" data-step='3'>第三步</div>
</template>
js部分:
mounted(){introJs().start()
}

4、键盘事件

window.addEventListener('keydown', function(event) {// 左箭头if(event.keyCode == 37) {console.log('左箭头被按下');// 在此处处理左箭头的逻辑}// 右箭头else if(event.keyCode == 39) {console.log('右箭头被按下');// 在此处处理右箭头的逻辑}
});

相关文章:

  • 离散数学--连通性和矩阵
  • 通用视频模板解决方案,视频生产制作更轻松
  • C#面:什么是DLL文件,使用它们有什么好处
  • Vue47-修改默认配置webpack.config.js文件
  • 05-5.4.1 树的存储结构
  • Mac下载了docker,在终端使用docker命令时用不了
  • 使用 calibre 拆分电子书合辑
  • vue标签组
  • cloud_enum:一款针对不同平台云环境安全的OSINT工具
  • 当OpenHarmony遇上OpenEuler
  • 元数据:数据的罗塞塔石碑
  • Pytorch环境配置的方法
  • eclipse maven打包报错: 致命错误: 在类路径或引导类路径中找不到程序包 java.lang的解决
  • MySQL 保姆级教程(七):用正则表达式进行搜索
  • 【Python】已解决报错:AttributeError: module ‘json‘ has no attribute ‘loads‘解决办法
  • [PHP内核探索]PHP中的哈希表
  • [ JavaScript ] 数据结构与算法 —— 链表
  • Angular 2 DI - IoC DI - 1
  • angular组件开发
  • cookie和session
  • go append函数以及写入
  • Lsb图片隐写
  • node 版本过低
  • Phpstorm怎样批量删除空行?
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 经典排序算法及其 Java 实现
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 力扣(LeetCode)56
  • 前嗅ForeSpider采集配置界面介绍
  • 浅谈web中前端模板引擎的使用
  • 使用API自动生成工具优化前端工作流
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • !!java web学习笔记(一到五)
  • # 飞书APP集成平台-数字化落地
  • #Z2294. 打印树的直径
  • $refs 、$nextTic、动态组件、name的使用
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • ( 10 )MySQL中的外键
  • (3)选择元素——(17)练习(Exercises)
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (c语言)strcpy函数用法
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (笔试题)合法字符串
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (三十五)大数据实战——Superset可视化平台搭建
  • (十八)SpringBoot之发送QQ邮件
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)项目管理杂谈-我所期望的新人
  • ****Linux下Mysql的安装和配置
  • ./configure、make、make install 命令