vue点击切换类名_vue 新用户引导(vue-dirver)

9debfb048cc7f4d02bb5a3a6a00fd0e9.png

最近公司经理让我在项目上做一个新用户引导,讲真这玩意我只在APP上看见过,网页上没啥功能啊,还需要引导! 没办法,刚它!!!

在网上查了点资料 Vue 基本上都是 intro.js 和 driver.js 两个插件

这两个插件intro.js 好像是比driver.js 要出名这么一丢丢,我个人还是推荐dirver.js intor.js 在路由切换以后遮罩层就会叠加一层叠在一起就跟Av画质一样,后面都看不见,intro.js支持的dirver.js都支持,主要dirver.js 简单粗暴适合硬撸,所以还是选择dirver.js YY一下(我一直为没有搞懂这两个插件在githun 项目演示为什么不把文档做成引导的来讲解文档,这样多方便也符合插件本身)

npm 安装: npm install driver.js

yarn 安装 :yarn add driver.js

这里我们直接在mian.js 里面配置,我感觉做个都不可能只是在一个也main引导,其他也页面也要引导,

main.js 配置:

import Vue from "vue"
import Driver from "driver.js"
import "driver.js/dist/driver.min.css"

直接封装一下:

Vue.prototype.$Driver = new Driver({

classname:“scoped class”// 为你的指示模块添加类名 如果你要取消 某一个按钮(比如:“上一步””下一步“,”完成“)的 这个类名还是要加上的

animate:true,//在更改突出显示的元素时设置动画

不透明度:0.75,//背景不透明度(0表示只有弹出窗口,没有覆盖)

padding:10,//元素与边缘的距离

allowclose:true,//单击覆盖是否应关闭

overlay click next:false,//单击overlay click是否转到下一步

donebtntext:“完成”,//最后一个按钮上的文本

closebtnext:'关闭',//此步骤的“关闭”按钮上的文本

NextBtnText:'一步',//此步骤的下一步按钮文本

prevbtnext:“上一步”,//此步骤的上一个按钮文本

show buttons:false,//不在页脚中显示控件按钮

keyboardcontrol:true,//允许通过键盘进行控制(转义为“关闭”,箭头键为“移动”)。

scrollintoview options:,//我们尽可能使用'scrollintoview()',如果需要,请在此处传递它的选项

onHighlightStarted:(element),//当要突出显示元素时调用

onHighlighted:(element),//当element完全突出显示时调用

OnDeselected:(element),//取消选择element后调用

onreset:(element),//当要清除覆盖时调用

on next:(element)=>,//在任何步骤上移动到下一步时调用

onPrevious:(element)=>,//在任何步骤上移动到下一步时调用

})

7c48f0d5d31acdd86945fb0b5649d0f2.png

需要配置一下steps

可以用js 引用 也可以直接在data里面配置

const steps = [

{

element: "#guide-menu", // 需要引导展示的iD

popover: {

title: "菜单导航", //展示模块标题

description: "点击菜单可切换右侧菜单内容", // 展示模块类容

position: "right" // 模块的位置 可以定位 看自己了

}

]

export default steps

f2056b594a6367b9fc057eb51d8e1315.png

在页面直接this.$Driver调用就可以了

引入steps调用方法:

import steps from '../plugins/steps'

this.$driver.defineSteps(steps) //传入配置参数
this.$driver.start() // 开始执行dirver

基本上这样就可以实现基本功能了

如果从这个路由跳转到下个路由 那么需要再引一遍dirver.js 就可以了

import steps from '../plugins/steps'

this.$driver.defineSteps(steps) // 从新配置的参数

this.$driver.start() // 开始执行dirver

608831d28694ed3505c3d5a1c5b677a1.png

这样虽然没什么毛病,但是仔细一想老子辛辛苦苦写的用户引导 你不按步骤走,直接点跳过,我心里面还是不怎么乐意,我们写了半天代码你点一个完成这样好像不太合适,所以我要把"完成"什么的都禁止掉(来自邪恶程序员的狂笑),dirver.js 并没有提供想对的禁止按钮的方法,但是提供了自定义类名,而且还有单独步骤的自定义类名,这一点我感觉真特么好啊,

popoverClassBut // 这是我自己自定义的类名

.popoverClassBut .driver-clearfix .driver-close-btn ,.popoverClassBut .driver-clearfix .driver-prev-btn{display: none !important;
}

这样就可以为所欲为强制用户走我们为他规划好的路线了 ^_^

为单独一个引导添加独立的属性,也可以添加事件,添加事件必须用JS来导出,不能用在data里面

const stepDefinition = {
element : '#some-item ', //查询选择器字符串或要突出显示的节点
stageBackground : '# fffffff ', //这将覆盖驱动程序
popover中设置的一个: { //如果为空则不会有弹出窗口给定
className : ' popover-class ',// className以包装此特定步骤popover以及Driver选项
标题中的常规className : ' Title ', // popover
描述中的标题: '描述', //
popover的主体
showButtons: false, //不显示页脚中的控制按钮 doneBtnText: ' Done ', //最后一个按钮上的文本
closeBtnText: ' Close ', //关闭按钮上的文字
nextBtnText: '下一步', //下一个按钮文字
prevBtnText : '上一页', //上一页按钮文字
},
onNext : ()=> {}, //从当前步骤
转到下一步时调用onPrevious : ()=> {}, //从当前步骤移动到上一步时调用
};

重之中重

我们的项目里面有很多样式都会用到position:fixed; 而dorver.js的也是position:fixed;

z-index:100000;

所以基本上我们的样式就会被覆盖 而起不到引导的效果

9169ffd98595207117501a421ff197ea.png

就像这个一样 用的是element的 这一块还是现实的白屏 弹出框都是position:fixed; 这种情况我只需要吧元素的z-index 设置的比dirver高就可以了 也可以再methods里面设置

this.$driver.defineSteps(steps)
this.$driver.start()var driver = document.getElementById('driver-page-overlay')var highlighted = document.getElementById('driver-highlighted-element-stage')
driver.style.cssText = "z-index:1000!important;"
highlighted.style.cssText = "z-index:1000!important;" // 我需要引导展示的元素

3c107f26815857074f99874b0c582af5.png

这个时候我们发现你要引导用户去点击某一个餐单

你希望是这样 只能按照你的规定点击你要的菜单

c0f886975ab4e4320afa80fa0c536972.png

如果是这样你把z-index设置比dirver.js 高 就不行这样会把所有的菜单都显示出来,达不到我们想到的效果 ,把单独的元素这是z-index :100000000 也不行 因为他的父级没有dirver.js 高 所有还是会被隐藏.

我这边试了很多方法都不行 不可能因为一个新用户引导而取消老子菜单置顶吧 ,然后我发现顶用dirver.js 的时候会全局加上一个 "driver-fix-stacking"的类名 真的是有这个大宝贝不早说 浪费半天表情, 我们只需要在

.driver-fix-stacking .header {

position:relative;

}

就可以 这样达到我们想要的效果了

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

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

相关文章

c# html转为图片,C# 使用 WebBrowser 实现 HTML 转图片功能的示例代码

在 .NET 平台上,我们有多种方式可以将一段 HTML 文本转换为一张图片:HTML Renderer、SelectPdf 、Aspose.Html等。在 WinForm 程序中,每一个 System.Windows.Forms.Control 的派生类型均包含一个名为 DrawToBitmap 的方法,该方法可…

android平板 深度学习,这款叫Remix的设备,或许可以拯救安卓平板

(图片来自于魏布斯评测视频“Remix平板上手使用体验”)现今平板市场,已呈现出苹果谷歌微软三分天下之势。然而,相较于其他两者,安卓平板却并面临着严重的危机,即便自2013年第三季度,安卓平板便已超越iPad成为市场份额的…

IE8下强制浏览器用哪个IE版本渲染页面

在head中加入<meta http-equiv"X-UA-Compatible" content"IEEmulateIE10"/> 转载于:https://www.cnblogs.com/lansetuerqi/p/8288900.html

华为swot分析2020_科技口译现场:华为2020全球分析师大会

华为第17届全球分析师大会2020年5月18-20日在中国深圳举办&#xff0c;本次大会期间&#xff0c;将分享华为对于全球化合作的思考&#xff0c;如何发挥ICT技术价值应对未来世界的不确定性&#xff1b;如何持续创新为人类社会进步做贡献&#xff1b;如何推动产业发展和生态建设&…

python导出数据找不到csv_【记录】使用Python读取/导出(写入)CSV文件

想要用python处理csv文件。 去查了下&#xff0c;python中本身就自带csv模块。 然后参考在线手册&#xff1a; 去试试。 【用python生成csv】 1. 按照手册的例子&#xff0c;试了试&#xff1a;import csv with open(eggs.csv, wb) as csvfile: spamwriter csv.writer(csvfile…

mips汇编计算开方_读美国伊利诺伊理工大学计算机科学硕士能学到什么?

最近有很多计算机专业的大学生和程序员、工程师等在职人士&#xff0c;向彼岸教育咨询美国伊利诺伊理工大学的计算机硕士项目&#xff0c;想更多地了解课程和教学内容。彼岸教育从伊利诺伊理工大学计算机科学系要来了一份近期学校的安排的部分课程大纲&#xff0c;包括教师背景…

html iframe php,html iframe使用的实战总结分享

说在前面的话&#xff0c;iframe是可以做很多事情的。例如&#xff1a;a>通过iframe实现跨域;b>使用iframe解决IE6下select遮挡不住的问题c>通过iframe解决Ajax的前进后退问题d>通过iframe实现异步上传。(Easyui中form组件就是用的iframe&#xff0c;实现表单提交时…

环形队列出队的元素怎么输出出来_队列的知识讲解与基本实现(数据结构)

引言中午在食堂打饭&#xff0c;真是一个令人头疼的事情&#xff0c;去食堂的路上也总是步伐匆匆&#xff0c;为什么啊&#xff0c;这还用说&#xff0c;迟一点去&#xff0c;你就会知道什么叫做人山人海了&#xff0c;在食堂排队的时候&#xff0c;相比较学生来说&#xff0c;…

c++ 不插入重复元素但也不排序_【每日一题】125. 对链表进行插入排序

关注我们获取更多计算机考研信息对链表进行插入&#xff0c;插入排序算法&#xff1a;插入排序是迭代的&#xff0c;每次只移动一个元素&#xff0c;直到所有元素可以形成一个有序的输出列表。每次迭代中&#xff0c;插入排序只从输入数据中移除一个待排序的元素&#xff0c;找…

怎么检查计算机网络是连接,怎么检测网络打印机是否与电脑连接成功【检测方法】...

想必不少宝宝和以前的小编一样&#xff0c;在用网络打印机的时候&#xff0c;有时候能打印&#xff0c;有时候却打印不了。那么如何 检测网络打印机是否与电脑连接成功?跟随小编往下看。系统反反复复告知“无法打印”&#xff0c;让工作本已繁忙的小修近乎奔溃! 那么&#xff…

python画菱形的代码_python绘制菱形

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01;首先&#xff0c;将数据读入到python中&#xff0c;并绘制出生率和死亡率数据的散点图&#xff0c;代码如下&…

计算机实物知识需求市场调研,能力本位计算机维护论文

能力本位计算机维护论文1课程教学现状对于计算机专业学生来说&#xff0c;学会组装计算机系统&#xff0c;分析和解决计算机常见故障是计算机专业学生必须掌握的一项技能&#xff0c;学好本课程对将来就业有很大的帮助。然而&#xff0c;随着计算机技术的快速发展&#xff0c;本…

python爬取bilibili弹幕_python爬虫:bilibili弹幕爬取+词云生成

如果你懒得看下边的文字&#xff0c;我录了一个完整的教学视频在b站上。 我的B站教学&#xff1a;https://www.bilibili.com/video/av75377135?p2 工作原理 b站是提供弹幕接口的&#xff0c;所以我们的整体操作进行如下&#xff1a; 1.到B站获取cid2.将cid与网站固定格式进行链…

access vba 常量数组赋值_聊聊 VBA 数组的那些坑

为什么使用数组&#xff1f;1. 缩减工作薄文件大小&#xff0c;提高运行效率一般而言只是使用 Excel 的内置工作表函数&#xff0c;在运算方面还是很高效的&#xff0c;但有时因为一个单元格牵扯的计算太多&#xff0c;比如调用多单元格数据&#xff0c;对结果文本进行部分替换…

HTML文件可通过www进行传输,使用 zssh 进行 Zmodem 文件传输

Zmodem 最早是设计用来在串行连接(uart、rs232、rs485)上进行数据传输的&#xff0c;比如&#xff0c;在 minicom 下&#xff0c;我们就可以方便的用 Zmodem (说 sz 、rz 可能大家更熟悉)传输文件。只不过串口本身传输速度不快&#xff0c;文件大的话会让人有点崩溃。没有彻底把…

Linux下使用popen()执行shell命令

转载于&#xff1a;https://www.cnblogs.com/caosiyang/archive/2012/06/25/2560976.html 简单说一下popen()函数 函数定义 #include <stdio.h>FILE * popen(const char *command , const char *type ); int pclose(FILE *stream); 函数说明 popen()函数通过创建一个管道…

centos7安装python3.7.4_Centos7升级Python3.7.4

和大家技术分享一下当我们安装完成Centos7后&#xff0c;默认系统Python的版本为2.7.5。我们希望将Python升级到最新版本。 1、安装依赖项 yum install -y openssl-devel openssl-static zlib-devel lzma tk-devel xz-devel bzip2-devel ncurses-devel gdbm-devel readline-dev…

MyEclipse移动开发教程:迁移HTML5移动项目到PhoneGap(二)

MyEclipse开年钜惠 在线购买低至75折&#xff01;立即开抢>> 【MyEclipse最新版下载】 二、将文件从HTML5项目复制到PhoneGap项目中 1. 在HTML5 app项目的www/文件夹的资源中&#xff0c;单击右键&#xff0c;然后选择Copy。 从HTML5项目复制www资源2. 将资源粘贴到新Pho…

pb graph鼠标移上显示数据_Plotly数据可视化:离线版、微软vscode版的Python的基本作图...

1 介绍&#xff1a;1.1 Plotly 是一款用来做数据分析和可视化的在线平台&#xff0c;功能非常强大。1.2 Plotly是一个非常著名且强大的开源数据可视化框架&#xff0c;它通过构建基于浏览器显示的web形式的可交互图表来展示信息。1.3 具有多种语言python、javascript、matlab、…

centos安装无线网卡驱动_CentOS下显卡驱动安装的相关思考

背景&#xff1a;最近在安装显卡驱动&#xff0c;查找了一些网上的教程&#xff0c;但总感觉思路不够清晰&#xff0c;没办法弄清背后涉及的Linux原理&#xff0c;于是参考网上教程&#xff0c;并查阅了相关资料&#xff0c;希望能对显卡驱动安装作一个梳理&#xff0c;以做记录…