driver.js实现页面操作指引

概述

在访问某些网站的时候,第一次进去你会发现有个操作指引,本文引用driver.js,教你在你的页面也加入这般高大上的操作指引。

实现效果

操作指引

高亮区域

实现

driver.js简介

driver.js是一个功能强大且高度可定制的基于原生JavaScript开发的新用户引导库。它没有依赖项,支持所有主要浏览器。

  • 官网地址:https://kamranahmed.info/driver.js
  • 配置项: https://driverjs.com/docs/configuration
  • API:https://driverjs.com/docs/api

安装

可通过NPM的方式引入。

npm i driver.js
// 或者
yarn add driver.js

或者CDN的方式引入

<script src="https://unpkg.com/driver.js/dist/driver.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/driver.js/dist/driver.min.css">

特性

  • **简单:**简单易用,完全没有外部依赖

  • 高度可定制:有一个强大的api,可以用于你希望突出显示任何内容

  • 高亮显示:页面功能介绍上的任意元素(字面上的任意)

  • 功能介绍:为你的web应用程序创建强大的功能介绍

  • 焦点移位器:为用户友好添加焦点移位器

  • 用户友好:通过键盘行为控制一切

  • 一致行为:所有浏览器(包括著名的IE)都可以使用

  • MIT声明:免费用于个人和商业用途。

实现

高亮

const driverObj = driver({popoverClass: "my-custom-popover-class",
});
driverObj.highlight({element: ".form-start-position",popover: {title: "起点",description: "<p>输入起点关键词,选择正确的起点</p>",},
});

操作指引

const tipsKey = `page-tips`;
if (localStorage.getItem(tipsKey)) return;
const stepsData = [{element: ".form-start-position",popover: {title: "起点",description: "<p>输入起点关键词,选择正确的起点</p>",side: "bottom",align: "center",},},{element: ".form-end-position",popover: {title: "终点",description: "<p>输入终点关键词,选择正确的终点</p>",side: "bottom",align: "center",},},{element: ".query-button",popover: {title: "查询",description: "<p>点击查询按钮,开始查询规划路径并在地图上展示</p>",side: "bottom",align: "center",},},{element: ".map-button",popover: {title: "地图",description: "<p>展示地图和路径规划</p>",side: "bottom",align: "center",},},
];
const driverObj = driver({popoverClass: "my-custom-popover-class",overlayColor: "#000000",overlayOpacity: 0.5,prevBtnText: "上一提示",nextBtnText: "下一提示",doneBtnText: "知道了",closeBtnText: "关闭",showProgress: true,progressText: "{{current}}/{{total}}",allowClose: true,stageRadius: 4,stagePadding: 10,popoverOffset: 10,onDestroyed: (ele) => {localStorage.setItem(tipsKey, "true");},steps: stepsData,
});
driverObj.drive();

自定义样式

.my-custom-popover-class {background-color: rgba(1, 122, 242, 0.8);color: #fff;.driver-popover-arrow-side-top {border-top-color: rgba(1, 122, 242, 0.8);}.driver-popover-arrow-side-bottom {border-bottom-color: rgba(1, 122, 242, 0.8);}.driver-popover-arrow-side-left {border-left-color: rgba(1, 122, 242, 0.8);}.driver-popover-arrow-side-right {border-right-color: rgba(1, 122, 242, 0.8);}.driver-popover-progress-text,.driver-popover-close-btn {color: #fff;}.driver-popover-prev-btn,.driver-popover-next-btn {border: 1px solid #fff;color: rgba(1, 122, 242, 1);}
}

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

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

相关文章

无人机航测技术算法概述!

一、核心技术 传感器技术&#xff1a; GPS/GLONASS&#xff1a;无人机通过卫星定位系统实现高精度的飞行控制和数据采集。 高清相机&#xff1a;用于拍摄地面图像&#xff0c;通过后续图像处理生成三维模型。 激光雷达&#xff08;LiDAR&#xff09;&#xff1a;通过激光扫…

Docker 基础命令介绍和常见报错解决

介绍一些 docker 可能用到的基础命令&#xff0c;并解决三个常见报错&#xff1a; 权限被拒绝&#xff08;Permission Denied&#xff09;无法连接到 Docker 仓库&#xff08;Timeout Exceeded&#xff09;磁盘空间不足&#xff08;No Space Left on Device&#xff09; 命令以…

Java RPC框架的接口预热原理及无损实现

&#x1f680; 博主介绍&#xff1a;大家好&#xff0c;我是无休居士&#xff01;一枚任职于一线Top3互联网大厂的Java开发工程师&#xff01; &#x1f680; &#x1f31f; 在这里&#xff0c;你将找到通往Java技术大门的钥匙。作为一个爱敲代码技术人&#xff0c;我不仅热衷…

java的强,软,弱,虚引用介绍以及应用

写在前面 本文看下Java的强&#xff0c;软&#xff0c;弱&#xff0c;虚引用相关内容。 1&#xff1a;各种引用介绍 顶层类是java.lang.ref.Reference,注意是一个抽象类&#xff0c;而不是接口&#xff0c;其中比较重要的引用队列ReferenceQueue就在该类中定义&#xff0c;子…

已有docker增加端口号,不用重新创建Docker

已有docker增加端口号&#xff0c;不用重新创建Docker 1. 整体描述2. 具体实现2.1 查看容器id2.2 停止docker服务2.3 修改docker配置文件2.4 重启docker服务 3. 总结 1. 整体描述 docker目前使用的非常多&#xff0c;但是每次更新都需要重新创建docker&#xff0c;也不太方便&…

jmeter常用配置元件介绍总结之断言

系列文章目录 1.windows、linux安装jmeter及设置中文显示 2.jmeter常用配置元件介绍总结之安装插件 3.jmeter常用配置元件介绍总结之线程组 4.jmeter常用配置元件介绍总结之函数助手 5.jmeter常用配置元件介绍总结之取样器 6.jmeter常用配置元件介绍总结之jsr223执行pytho…

OpenLayers教程12_WebGL自定义着色器:实现高级渲染效果

在 OpenLayers 中使用 WebGL 自定义着色器实现高级渲染效果 目录 一、引言二、WebGL 自定义着色器的优势三、示例应用&#xff1a;实现动态渲染效果 1. 项目结构2. 主要代码实现3. 运行与效果 四、代码讲解与扩展 1. 动态圆的半径和填充颜色2. 动态透明度与边框效果 五、总结…

Axure二级菜单下拉交互实例

1.使用boxlabe进行基础布局 2.设置鼠标悬浮和选中状态 3.转换为动态面板 选中所有二级菜单,进行按钮组转换 选中所有二级菜单,进行动态面板转换 4.给用户管理增加显示/隐藏事件 1)选择toggle代表上拉和下拉切换加载 2)勾选Bring to Front,并选择Push/Pull Widgets代表收缩时…

SpringSecurity+OAuth2权限管理

Spring Security 零 介绍 功能&#xff1a; 身份认证&#xff08;authentication&#xff09; 授权&#xff08;authorization&#xff09; 防御常见攻击&#xff08;protection against common attacks&#xff09; 身份认证&#xff1a; 身份认证是验证谁正在访问系统资…

为什么芯麦的 GC4931P 可以替代A4931/Allegro 的深度对比介绍

在电机驱动芯片领域&#xff0c;芯麦 GC4931P 和 A4931 都是备受关注的产品。它们在多种应用场景中发挥着关键作用&#xff0c;今天我们就来详细对比一下这两款芯片。 一、性能参数对比 &#xff08;一&#xff09;电流输出能力 A4931 具有一定的电流输出能力&#xff0c;但芯…

ThreadLocal原理及其内存泄漏

ThreadLocal通过为每个线程创建一个共享变量的副本来保证各个线程之间变量的访问和修改互不影响。 ThreadLocal存放的值是线程内共享的&#xff0c;线程间互斥的&#xff0c;主要用于线程内共享数据&#xff0c;避免通过参数传递。 ThreadLocal有四个方法&#xff1a; initialV…

工业大数据分析与应用:开启智能制造新时代

在全球工业4.0浪潮的推动下&#xff0c;工业大数据分析已经成为推动智能制造、提升生产效率和优化资源配置的重要工具。通过收集、存储、处理和分析海量工业数据&#xff0c;企业能够获得深刻的业务洞察&#xff0c;做出更明智的决策&#xff0c;并实现生产流程的全面优化。本文…

web安全测试渗透案例知识点总结(上)——小白入狱

目录 一、Web安全渗透测试概念详解1. Web安全与渗透测试2. Web安全的主要攻击面与漏洞类型3. 渗透测试的基本流程 二、知识点详细总结1. 常见Web漏洞分析2. 渗透测试常用工具及其功能 三、具体案例教程案例1&#xff1a;SQL注入漏洞利用教程案例2&#xff1a;跨站脚本&#xff…

每天五分钟机器学习:支持向量机算法数学基础之核函数

本文重点 从现在开始,我们将开启支持向量机算法的学习,不过在学习支持向量机算法之前,我们先来学习一些支持向量机所依赖的数学知识,这会帮助我们更加深刻的理解支持向量机算法,本文我们先来学习核函数。 定义 核函数(Kernel Function)是一种在支持向量机(SVM)、高…

【小程序】dialog组件

这个比较简单 我就直接上代码了 只需要传入title即可&#xff0c; 内容部分设置slot 代码 dialog.ttml <view class"dialog-wrapper" hidden"{{!visible}}"><view class"mask" /><view class"dialog"><view …

【MySQL】ubantu 系统 MySQL的安装与免密码登录的配置

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;MySQL初阶探索&#xff1a;构建数据库基础 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f4da;mysql的安装&#x1f4d5;MySQL的登录&#x1f30f;MySQL配置免密码登录 &#x1f4da;mysql的…

Dubbo源码解析-服务注册(五)

一、服务注册 当确定好了最终的服务配置后&#xff0c;Dubbo就会根据这些配置信息生成对应的服务URL&#xff0c;比如&#xff1a; dubbo://192.168.65.221:20880/org.apache.dubbo.springboot.demo.DemoService? applicationdubbo-springboot-demo-provider&timeout300…

计算机网络-理论部分(二):应用层

网络应用体系结构 Client-Server客户-服务器体系结构&#xff1a;如Web&#xff0c;FTP&#xff0c;Telnet等Peer-Peer&#xff1a;点对点P2P结构&#xff0c;如BitTorrent 应用层协议定义了&#xff1a; 交换的报文类型&#xff0c;请求or响应报文类型的语法字段的含义如何…

麒麟时间同步搭建chrony服务器

搭建chrony服务器 在本例中&#xff0c;kyserver01&#xff08;172.16.200.10&#xff09;作为客户端&#xff0c;同步服务端时间&#xff1b;kyserver02&#xff08;172.16.200.11&#xff09;作为服务端&#xff0c;提供时间同步服务。 配置服务端&#xff0c;修改以下内容…

学习threejs,通过SkinnedMesh来创建骨骼和蒙皮动画

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.SkinnedMesh 蒙皮网格…