vue+intro.js实现引导功能

news2025/2/25 21:26:27

前言:

        使用 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('右箭头被按下');
        // 在此处处理右箭头的逻辑
    }
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1823890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot集成Timefold Solver实现课程表编排

1. 什么是Timefold Solver&#xff1f; 每个组织都面临规划问题&#xff1a;使用一组有限的资源&#xff08;员工、资产、时间和金钱&#xff09;提供产品或服务。Timefold Solver 优化了此类规划&#xff0c;以更少的资源开展更多业务。这被称为约束满足编程&#xff08;属于…

LeetCode | 168.Excel表列名称

这道题一开始以为是简单的进制转换问题&#xff0c;用的以往的思路&#xff0c;对于一般性的进制转换题目&#xff0c;只需要不断地对 columnNumber 进行 % 运算取得最后一位&#xff0c;然后对 columnNumber 进行 / 运算&#xff0c;将已经取得的位数去掉&#xff0c;直到 col…

ABB 和PLC ProfinN 通信

1,设置IP 地址 2&#xff0c; 设置站名称 3&#xff0c; 修改传送区大小 4,配置DI DO 5,导出 6&#xff0c;安装gsd 文件 7&#xff0c;建立通信

LeetCode --- 132双周赛

题目列表 3174. 清除数字 3175. 找到连续赢 K 场比赛的第一位玩家 3176. 求出最长好子序列 I 3177. 求出最长好子序列 II 一、清理数字 这题直接根据题目&#xff0c;进行模拟即可&#xff0c;大体的思路是遍历字符串&#xff0c;遇到字母就加入答案&#xff0c;遇到数字就…

android studio 自定义类注释模版

perferences>File and Code Templates>Class 填写&#xff1a; /*** ClassName: ${ClassName}* Description: ${Description}* Author: ${Author}* CreateDate: ${CreateDate}* UpdateUser: ${UpdateUser}* UpdateDate: ${UpdateDate}* UpdateRemark: ${UpdateRemark}* …

Spring boot 启动报:Do not use @ for indentation

一、使用maven插件动态切换配置时出现报错 二、配置文件及pom 2.1 配置文件结构 2.2 application.yml spring: # 根据环境读取配置文件&#xff08;手动&#xff09; # profiles: # active: dev# 根据环境读取配置文件&#xff08;通过勾选maven插件&#xff09;profiles…

Python时间序列分析库

Sktime Welcome to sktime — sktime documentation 用于ML/AI和时间序列的统一API,用于模型构建、拟合、应用和验证支持各种学习任务,包括预测、时间序列分类、回归、聚类。复合模型构建,包括具有转换、集成、调整和精简功能的管道scikit学习式界面约定的交互式用户体验Pro…

如何应对生活中的不确定性:仁者安仁,知者利仁。

有较高自尊水平的人&#xff0c;接近于孔子说的&#xff1a;仁者。 ——— 有着稳定的高自尊&#xff0c;无论外在环境如何变化&#xff0c;对其影响都不大&#xff0c;他能够愉快地生活。 相反&#xff1a;一个人处于低自尊状态&#xff0c;就会活得很痛苦&#xff0c;对自己…

俄罗斯Yandex推广投放如何开户?Yandex广告开户和代运营推广流程详解_俄罗斯_受众_搜索引擎

在俄罗斯进行Yandex广告推广是一种有效的在线营销方式&#xff0c;特别是针对俄罗斯市场。Yandex是俄罗斯最受欢迎的搜索引擎&#xff0c;类似于Google在全球范围内的地位。以下是通过Yandex广告推广的一般步骤&#xff0c;以及如何通过上海上弦进行广告开户和代运营。 1. Yan…

Stringboot

一、概述 springboot是spring家族中的一个全新框架&#xff0c;用来简化spring程序的创建和开发过程。在以往我们通过SpringMVCSpringMybatis框架进行开发的时候&#xff0c;我们需要配置web.xml&#xff0c;spring配置&#xff0c;mybatis配置&#xff0c;然后整合在一起&…

明天二战六级

明天二战六级&#xff0c;各位程序员们&#xff0c;加油

活动集锦 | 英码科技积极参与行业盛会,AI赋能城市数字化转型

在当今数字经济时代&#xff0c;城市全域数字化转型已经成为提升城市管理效能、优化资源配置、推动经济发展的重要手段。英码科技始终致力于为企业打造高效、低成本的行业应用方案&#xff0c;助力企业实现数字化转型。近日&#xff0c;英码科技受邀参加了多场行业展示活动&…

[Java基本语法] 继承与多态

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;线程与…

zabbix老版本3.0.14迁移

由于之前zabbix版本过老&#xff0c;一直未能升级&#xff0c;现在一台老的服务器需要迁移&#xff0c;服务器较老&#xff0c;就不更新&#xff0c;先迁移数据&#xff0c; 下载地址&#xff1a; Zabbix Official Repository http://repo.zabbix.com/zabbix/3.0/rhel/7/x86…

R 文件优化插件:Binary XML file in layout Error inflating class

场景一&#xff1a;构造函数缺失 问题 自定义布局&#xff08;FlagmentLayout&#xff09;加载自定义属性失败&#xff0c;导致广告显示异常&#xff0c;甚至是闪退&#xff5e; InflateException 在 Android 中我们遇到的通常发生在自定义 View 创建中&#xff0c;动态加载…

【安装笔记-20240614-Linux-在 OpenWrt 上安装 filebrowser 支持文件分享】

安装笔记-系列文章目录 安装笔记-20240614-Linux-在 OpenWrt 上安装 filebrowser 支持文件分享 文章目录 安装笔记-系列文章目录安装笔记-20240614-Linux-在 OpenWrt 上安装 filebrowser 支持文件分享 前言一、软件介绍名称&#xff1a;filebrowser主页官方介绍特点 二、安装步…

Ubuntu如何添加用户环境变量

一&#xff0c;简介 在工作中&#xff0c;需要将某个环境变量添加到用户环境变量中&#xff0c;方便使用。 要将 SOF_WORKSPACE~/work/sof 添加到用户的环境变量中&#xff0c;需要将该设置添加到用户的 shell 配置文件中&#xff0c;例如 ~/.bashrc&#xff08;对于 Bash 用…

vue 渲染函数 h jsx

h 是什么 vue 提供的创建虚拟 DOM 节点 (vnode)的函数。 https://cn.vuejs.org/api/render-function.html#h jsx 是什么 JSX是 JavaScript XML&#xff08;HTML&#xff09;的缩写&#xff0c;表示在 JS 代码中书写 HTML 结构。简单理解就是&#xff1a; JSXjavascript xml&am…

线代知识点总结

目录 一.初等行/列变换 1.计算行列式时&#xff0c;行列变换都可 2.求矩阵的秩时&#xff0c;行列变换都可 3.解线性方程组时&#xff0c;仅能使用初等行变换 4.判定解的情况&#xff0c;单纯求r(A),r(A,b)的过程行列变换都可 5.求向量组极大无关组、线性表出关系&#x…

神经网络学习1—nn.Module

nn.module 为所有神经网络提供了一个模板 import torch.nn as nn import torch.nn.functional as Fclass Model(nn.Module):def __init__(self):super(Model, self).__init__()self.conv1 nn.Conv2d(1, 20, 5)self.conv2 nn.Conv2d(20, 20, 5)def forward(self, x):x F.rel…