driver.js web 新手交互引导工具库

这篇具有很好参考价值的文章主要介绍了driver.js web 新手交互引导工具库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近逛技术论坛发现了 driver.js 这个库,相信很多人在app中都碰到过功能引导的,这个库就可以用来做这个功能。web段项目很少见到功能引导的,但是用在uniapp浏览器插件 中感觉还是十分不错的,因此打算来简单学习一下,防止以后会用到。

文档地址:https://github.com/kamranahmedse/driver.js
官方demo:https://kamranahmed.info/driver.js/

下面只演示最基本的使用,其他见官方示例

安装、使用

安装

npm install driver.js

基本使用
最简单的使用方法是高亮突出一个元素,只要给一个 CSS 选择器即可

<template>
    <div>
        <div class="test">driver.js的基本使用</div>
        <div>111</div>
        <div>222</div>
        <div>333</div>
    </div>
</template>

<script>
import Driver from 'driver.js';
import 'driver.js/dist/driver.min.css';
export default {
    mounted() {
        const driver = new Driver();
        driver.highlight({
            element: '.test',
            popover: {
                title: '这是个标题',
                description: '描述:这是一个弹出层',
                // 位置支持设置为 left, left-center, left-bottom, top,
                // top-center, top-right, right, right-center, right-bottom,
                // bottom, bottom-center, bottom-right, mid-center
                position: 'top',
                // 偏移
                offset: 20
            }
        });
    }
};
</script>

<style lang="scss" scoped>
.test {
    color: blue;
}

div {
    width: 200px;
    height: 30px;
}
</style>

drive.js,学习,javascript,前端,交互
多步骤引导

<template>
    <div>
        <div  id="first">第一步</div>
        <div id="second">第二步</div>
        <div id="third">第三步</div>
    </div>
</template>

<script>
import Driver from 'driver.js';
import 'driver.js/dist/driver.min.css';
export default {
    mounted() {
        const driver = new Driver();
        // 定义步骤
        driver.defineSteps([
            {
                element: '#first', // 元素
                popover: {
                    title: '提示',
                    description: '第一步',
                    position: 'left'
                }
            },
            {
                element: '#second',
                popover: {
                    title: '提示',
                    description: '第二步',
                    position: 'top'
                }
            },
            {
                element: '#third',
                popover: {
                    title: '提示',
                    description: '第三步',
                    position: 'right'
                }
            }
        ]);
        // 开始引导,参数表示默认开始的标识
        driver.start(0);
        setTimeout(() => {
            // 如果存在下一步
            if (driver.hasNextStep()) {
                // 移动到下一步
                driver.moveNext();
            }
        }, 500);
        setTimeout(() => {
            // 如果存在上一步
            if (driver.hasPreviousStep()) {
                // 移动到下一步
                driver.movePrevious();
            }
        }, 1500);
    }
};
</script>

<style lang="scss" scoped>
div {
    width: 200px;
    height: 30px;
     color: blue;
}
</style>

drive.js,学习,javascript,前端,交互

<template>
    <div>
        <div  id="first">第一步</div>
        <div id="second">第二步</div>
        <div id="third">第三步</div>
    </div>
</template>

<script>
import Driver from 'driver.js';
import 'driver.js/dist/driver.min.css';
export default {
    mounted() {
        const driver = new Driver({
            // 不允许点击遮罩关闭
            allowClose: false
        });
        // 定义步骤
        driver.defineSteps([
            {
                element: '#first', // 元素
                popover: {
                    title: '提示',
                    description: '第一步',
                    position: 'left'
                }
            },
            {
                element: '#second',
                popover: {
                    title: '提示',
                    description: '第二步',
                    position: 'top'
                }
            },
            {
                element: '#third',
                popover: {
                    title: '提示',
                    description: '第三步',
                    position: 'right'
                }
            }
        ]);
        // 开始引导,参数表示默认开始的标识
        driver.start(0);
        setTimeout(() => {
            // 如果存在下一步
            if (driver.hasNextStep()) {
                // 移动到下一步
                driver.moveNext();
            }
        }, 500);
        setTimeout(() => {
            // 如果存在上一步
            if (driver.hasPreviousStep()) {
                // 移动到下一步
                driver.movePrevious();
            }
        }, 1500);
    }
};
</script>

<style lang="scss" scoped>
div {
    width: 200px;
    height: 30px;
     color: blue;
}
</style>

注:电脑上左右健,可以来切换步骤。

常用配置、方法

配置

// 以下的值都是默认值
const driver = new Driver({
  animate: true,                    // 是否开启动画
  opacity: 0.75,                    // 遮罩透明度
  padding: 10,                      // padding
  allowClose: true,                 // 点击遮罩是否可以关闭
  overlayClickNext: false,          // 点击遮罩进行下一步
  doneBtnText: 'Done',              // 最后一共按钮的文本
  closeBtnText: 'Close',            // 关闭按钮的文本
  stageBackground: '#ffffff',       // 突出元素的背景色
  nextBtnText: 'Next',              // 下一步按钮的文本
  prevBtnText: 'Previous',          // 上一步按钮的文本
  showButtons: false,               // 不显示控制按钮
  keyboardControl: true,            // 是否允许通过键盘的左右键来控制
  scrollIntoViewOptions: {},        // 滚动视图配置,暂时不知道如何使用
  onHighlightStarted: (Element) => {}, // 元素高亮开始事件
  onHighlighted: (Element) => {},      // 元素高亮事件
  onDeselected: (Element) => {},       // 取消选定事件
  onReset: (Element) => {},            //重置事件
  onNext: (Element) => {},                    // 下一步
  onPrevious: (Element) => {},                //上一步
});

定义步骤

const stepDefinition = {
  element: '#some-item',        // 元素对象,支持类和id
  stageBackground: '#ffffff',   // 突出框背景色
  popover: {                    // There will be no popover if empty or not given
    className: 'popover-class', // 弹出窗口样式
    title: 'Title',             // 标题
    description: 'Description', // 描述
    showButtons: false,         // 是否显示按钮
    doneBtnText: 'Done',        
    closeBtnText: 'Close',     
    nextBtnText: 'Next',       
    prevBtnText: 'Previous',  
  },
  onNext: () => {},             // 从当前步骤移动到下一步骤时调用
  onPrevious: () => {},         // 从当前步骤移动到上一步骤时调用
};

常用方法文章来源地址https://www.toymoban.com/news/detail-535744.html

const driver = new Driver(driverOptions);

// 检查驱动程序是否激活
if (driver.isActivated) {
    console.log('Driver is active');
}

// 定义步骤列表
driver.defineSteps([ stepDefinition1, stepDefinition2, stepDefinition3 ]);
driver.start(stepNumber = 0);  // 开始执行定义的步骤
driver.moveNext();             // 移动到下一步
driver.movePrevious();         // 移动到上一步
driver.hasNextStep();          // 是否存在下一步
driver.hasPreviousStep();      // 是否存在上一步

// 停止移动
driver.preventMove();

// 使用查询选择器或步骤定义突出显示元素
driver.highlight(string|stepDefinition);

// 重新定位弹出窗口和高亮显示的元素
driver.refresh();

// 重置覆盖并清除屏幕
driver.reset();

// 检查是否有任何突出显示的元素
if(driver.hasHighlightedElement()) {
    console.log('There is an element highlighted');
}

// 获取屏幕上当前突出显示的元素
const activeElement = driver.getHighlightedElement();

// 获取最后一个突出显示的元素
const lastActiveElement = driver.getLastHighlightedElement();

activeElement.getCalculatedPosition(); // 获取活动元素的屏幕坐标
activeElement.hidePopover();           // 隐藏弹框
activeElement.showPopover();           // 显示弹框

activeElement.getNode();  // 获取当前突出元素下的dom元素

到了这里,关于driver.js web 新手交互引导工具库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于ios客户端与web网页js交互

    iOS与JS的交互可以通过以下几种方式实现: 1.使用UIWebView或WKWebView加载Html页面并在其中添加Javascript脚本,通过WebView的代理方法捕获Javascript脚本发出的事件,从而实现与iOS原生代码的交互。 2.使用JSBridge框架,它提供了一种简单的方式在Javascript和iOS原生代码之间进行通信。

    2024年02月10日
    浏览(43)
  • Unity | 简单高效的强制新手引导

      游戏中的新手引导可以帮助玩家快速了解游戏规则和操作方式,对于玩家体验来说非常重要 实现强制新手引导有很多种方式,这里基于 OnPopulateMesh 方法,相比 Shader、Mask 等方式,该方法通过减少 DrawCall 来提高 UI 渲染性能 点击镂空区域按的钮触发对应事件 3.1 构成分析 强

    2024年01月18日
    浏览(36)
  • 新手入门Web安全的学习路线

    学习Web安全需要掌握Web安全相关概念、渗透测试相关工具、渗透实战操作、熟悉Windows/Kali Linux、中间件和服务器的安全配置、脚本编程学习、源码审计与漏洞分析、安全体系设计与开发等等。 如果是零基础的小白入门Web安全,可以参考这个学习规划: 建议学习时间:2周 学习

    2024年02月05日
    浏览(57)
  • 使用web3.js连接Metamask钱包并完成合约交互

    Web3.js是一个用于与以太坊网络进行交互的JavaScript库。Metamask是一个以太坊钱包插件,可以在浏览器中创建和管理以太坊账户。本文将介绍如何使用web3.js库连接Metamask钱包,并完成与智能合约的交互。 Web3.js是一个用于与以太坊网络进行交互的JavaScript库。它提供了一些方法和功

    2024年03月16日
    浏览(51)
  • web前端——页面动态交互(对注册页信息添加css及js)

    按照下述要求为register.html补充外部CSS样式和JavaScript脚本。 1.补充register.css样式,实现如下功能(效果见图2): 设置“注册信息”红、黄二重文本阴影,使用rgba设置阴影具有一定透明度; 姓名和密码输入框中显示背景图像; 单选按钮和复选按钮被选中时,其后的辅助文本动

    2024年02月03日
    浏览(46)
  • web前端框架JS学习之JavaScript类型转换

    vascript有多种数据类型,如字符串、数字、布尔等,可以通过typeof语句来查看变量的数据类型。数据类型转换就是数据类型之间相互转换,比如把数字转成字符串、把布尔值转成字符串、把字符串转成数字等,这在工作也是经常碰到的。 本期我们就给大家说说web前端框架JS学

    2024年02月10日
    浏览(59)
  • 【QT进阶】Qt Web混合编程之html、 js的简单交互

    往期回顾 【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用(图文并茂超详细介绍)-CSDN博客 【QT进阶】Qt Web混合编程之QWebEngineView基本用法-CSDN博客 【QT进阶】Qt Web混合编程之CMake VS2019编译并使用QCefView(图文并茂超详细版本)-CSDN博客【QT进阶】Qt Web混合编程之VS2019 CEF的编译

    2024年04月22日
    浏览(30)
  • Unity关于新手引导中实现遮罩镂空效果

    在新手引导每一步中实现可以遮掉其他部分而显示当前需要点击的部分,只需要在每一步引导的时候设置对应的镂空区域的RectTransform.效果如下图: 代码:

    2024年01月20日
    浏览(48)
  • 连接区块链节点的 JavaScript 库 web3.js

    通过前面的文章我们可以知道基于区块链开发一个DApp,而DApp结合了智能合约和用户界面(客户端),那客户端是如何与区块链进行连接交互的、如何调用智能合约的、如何发送一个交易到区块链、如何获取区块链上的数据,这就是本文要介绍的 web3.js。 如下图,区块链网络

    2024年02月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包