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

vue使用driver.js引导并自定义样式和按钮

参考网址https://driverjs.com/docs/installation 

安装

npm install driver.js

以下是1.3.1版本的基本使用方法

import { driver } from 'driver.js'
import 'driver.js/dist/driver.css'
mounted() {// 实例化driver对象const driverObj = driver({showProgress: true,steps: [{ element: '.title', popover: { title: 'Title', description: 'Description' } },{ element: '.desc', popover: { title: 'Title', description: 'Description' } }]})driverObj.drive()
}

展示效果

常用属性及方法:

overlayColor: 'red', //遮罩颜色

 显示哪个按钮,不要哪个就去掉,全不显示赋值为['']

showButtons: ['next','previous','close'],

改变按钮文字

nextBtnText: '下一步',
prevBtnText: '上一步',
doneBtnText: '完成',

 改变样式

//js部分
popoverClass: 'customer-popover',//css部分
.customer-popover {.driver-popover-next-btn {color: #1583f8;}
}

onNextClick (点击下一步按钮触发)

注意:调用此方法,点击下一步按钮不会自动执行,需要手动调用driverObj.moveNext();

onNextClick: () => {console.log('Next Button Clicked')// Implement your own functionality heredriverObj.moveNext()
},

onPrevClick(点击上一步按钮触发)

注意:调用此方法,点击上一步按钮不会自动执行,需要手动调用driverObj.movePrevious();

onPrevClick: () => {console.log('Previous Button Clicked')// Implement your own functionality heredriverObj.movePrevious()
},

onCloseClick(点击关闭按钮触发)

注意:调用此方法,点击关闭按钮不会自动关闭,需要手动调用driverObj.destroy();

onCloseClick: () => {console.log('Close Button Clicked')// Implement your own functionality heredriverObj.destroy()
},

onDestroyStarted(退出引导时触发)

注意:调用此方法,点击其他区域不会自动关闭,需要手动调用driverObj.destroy();

 onDestroyStarted: () => {if (!driverObj.hasNextStep() || confirm("Are you sure?")) {driverObj.destroy();}},

自定义按钮

onPopoverRender: (popover, { config, state }) => {const firstButton = document.createElement('button')firstButton.innerText = 'Go to First'popover.footerButtons.appendChild(firstButton)firstButton.addEventListener('click', () => {driverObj.drive(0)})
},

完整配置

const driverObj = driver({showProgress: true,overlayColor: 'red', //遮罩颜色steps: [{element: '.title',popover: {title: '星标',description: '点击 Star 按钮可以星标这个作品,在我的主页可以查看我星标过的作品'}},{element: '.desc',popover: { title: '运行', description: '点击 Run 按钮可以运行这个作品' }}],showButtons: ['next', 'previous'],nextBtnText: '下一步',prevBtnText: '上一步',doneBtnText: '完成',popoverClass: 'customer-popover',onPopoverRender: (popover, { config, state }) => {const firstButton = document.createElement('button')firstButton.classList.add('pass-btn')firstButton.innerText = '跳过'popover.footerButtons.appendChild(firstButton)firstButton.addEventListener('click', () => {console.log(666)driverObj.destroy()})},onNextClick: () => {console.log('Next Button Clicked')// Implement your own functionality heredriverObj.moveNext()},onPrevClick: () => {console.log('Previous Button Clicked')// Implement your own functionality heredriverObj.movePrevious()},onCloseClick: () => {console.log('Close Button Clicked')// Implement your own functionality heredriverObj.destroy()},onDestroyStarted: () => {console.log('onDestroyStarted is called when the user tries to exit the tour')driverObj.destroy()}
})
driverObj.drive()<style>
.customer-popover {min-width: 360px;max-width: 500px;padding: 22px;.driver-popover-next-btn,.driver-popover-prev-btn,.pass-btn {color: #fff;background-color: #2774e9;border-color: #2774e9;height: 32px;padding: 0 15px;font-size: 16px;border-radius: 6px;text-shadow: inherit;&:hover,&:focus {background-color: #2774e9;}}.driver-popover-description {margin-bottom: 20px;margin-top: 20px !important;}
}
</style>

修改样式后展示效果

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Pandas 模块-操纵数据(12)-处理字符串数据
  • 【文末附gpt升级方案】亚马逊与Hugging Face合作:定制芯片低成本运行AI模型的创新探索
  • FreeRTOS 源码概述
  • CCF20230901——坐标变换(其一)
  • C#拼接xml
  • 甲方怒喷半小时:一次项目上线失败的深刻教训
  • m1系列芯片aarch64架构使用docker-compose安装rocketmq5.0以及运维控制台
  • 时政|医疗结果互认
  • 比较含退格的字符串-力扣
  • MySQL和MongoDB数据库的区别
  • 利用天气API接口自己DIY一个预报小管家
  • 部署k8s集群
  • 【2024软考】史上最全!软考刷题+解析大合集(9万字全手工打,货真价实)
  • 【draw.io的使用心得介绍】
  • 诺兰电影欣赏笔记
  • 【React系列】如何构建React应用程序
  • Angularjs之国际化
  • Fabric架构演变之路
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • JAVA并发编程--1.基础概念
  • java概述
  • Laravel 菜鸟晋级之路
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Shadow DOM 内部构造及如何构建独立组件
  • SpriteKit 技巧之添加背景图片
  • 聊一聊前端的监控
  • 前端攻城师
  • 手机端车牌号码键盘的vue组件
  • 问题之ssh中Host key verification failed的解决
  • 在Unity中实现一个简单的消息管理器
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • k8s使用glusterfs实现动态持久化存储
  • MPAndroidChart 教程:Y轴 YAxis
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (1)Hilt的基本概念和使用
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (南京观海微电子)——COF介绍
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (一) 初入MySQL 【认识和部署】
  • (译)计算距离、方位和更多经纬度之间的点
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)Google的Objective-C编码规范
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net 提取注释生成API文档 帮助文档
  • .net 验证控件和javaScript的冲突问题
  • .NET 指南:抽象化实现的基类
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • [Android]Android开发入门之HelloWorld
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [C# 基础知识系列]专题十六:Linq介绍
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析
  • [C++] 轻熟类和对象
  • [CTSC2014]企鹅QQ