最近公司经理让我在项目上做一个新用户引导,讲真这玩意我只在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)=>,//在任何步骤上移动到下一步时调用

})

需要配置一下steps

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

const steps = [

{

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

popover: {

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

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

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

}

]

export default steps

在页面直接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

这样虽然没什么毛病,但是仔细一想老子辛辛苦苦写的用户引导 你不按步骤走,直接点跳过,我心里面还是不怎么乐意,我们写了半天代码你点一个完成这样好像不太合适,所以我要把"完成"什么的都禁止掉(来自邪恶程序员的狂笑),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;

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

就像这个一样 用的是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;" // 我需要引导展示的元素

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

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

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

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

.driver-fix-stacking .header {

position:relative;

}

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

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

  1. Vue 页面引导效果(首次登录新用户引导) driver.js 引导页

    轻量级.无依赖的原生 JavaScript 引擎,可将用户的注意力集中在整个页面上:这是一个功能强大且高度可定制的基于原生JavaScript开发的新用户引导库. 简介及使用教程 Driver.js是 ...

  2. 互联网金融投放获客优化的讨论(新用户引导流程)

    众所周知,互联网金融行业获客成本非常之高,如何用一个完善流畅的新手引导承接住花钱购买来的流量,是比较值得关注的一个问题.最近整理了一些思路,希望能够讨论一下这个问题,请大家多多指教. 我们把整个投放获 ...

  3. 【优矿学习】分析新用户引导的代码

    本文中的例子来自于优矿的新用户引导中提供的代码: 记录在优矿这个平台一下学习的回测和取数据用到的基本方法 首先第一个策略是新用户引导里面给的,大概干了这么一件事: 回测2017-01-01到2018- ...

  4. vue点击切换css样式

    vue动态点击切换css样式 <template><div v-for="i in 5" class="el-personal" :class ...

  5. vue 点击切换导航标签,并左右滚动

    vue做的导航栏,左右各有按钮,点击向左右滚动 vue做的导航栏,左右各有按钮,点击向左右滚动 Vue - 点击导航栏当前标签后变色功能(导航栏当前hover样式) Vue - 点击导航栏当前标签后变 ...

  6. 关于vue点击切换element小图标问题

    问题出现原因 在通过vue写前端页面时,想要通过点击图标实现图标样式的切换,比如收藏和取消收藏的样式实现. 解决问题思路 我的想法是通过操作dom节点来实现,而在vue中可以通过三种方式来操作节点. ...

  7. vue点击按钮上传图片_vue图片上传

    前端代码: style="height: 200px;" class="upload-demo" ref="uploadVideoCoverDemo& ...

  8. vue实现消息badge 标记_vue 新消息提示

    场景分析: 场景1:一个人(信息列表一条)发了多条消息(消息列表多条): 场景2:多个人(信息列表多条)发送了多条消息(消息列表多条). 思路: 1.把请求的消息列表push进一个数组中,提交到vue ...

  9. vue 中点击切换图标,切换选中状态

    很多新手小白做这个切换下拉列表,选中列表记录当前选中状态,图标也变成当前选中状态的时候都会比较绕,其实其核心就是把(icon图标.样式加载变成变量话,按需加入想要的变量即可) 例如下面这个例子: &l ...

最新文章

  1. VSCODE常见问题(设置为4个空格)
  2. 软件测试集成测试广度,软件测试的规范[6]
  3. seo优化源码_seo按天计费系统,无需登陆批量查询关键词价格
  4. 数据类型及其基本操作
  5. mybatis 二级缓存失效_二级缓存updateBatchById失效
  6. Unity中所有特殊的文件夹
  7. npm 下载指定版本包
  8. win远程桌面连接服务器,远程桌面连接windows服务器
  9. 安徽师大附中%你赛day7 T2 乘积 解题报告
  10. 3.2计算机网络(停止-等待协议 后退N帧协议 选择重传协议)
  11. js动态向页面添加元素
  12. GPS北斗校时服务器(时间服务器)在港口自动化系统应用
  13. 辨别MagicKeyboard的真伪(序列号验证版)
  14. activity或者flowable会签任务的事例
  15. wndows 系统变量
  16. math.pow 和 Math.sqrt函数
  17. 8086段地址为什么是16的倍数?
  18. 【实战问题】【3】iPhone无法播放video标签中的视频
  19. Android重复点击同一个导航栏失效的解决方案
  20. 2843 拯救炜哥 (bfs)

热门文章

  1. java统计报表日期工具类
  2. Linux|CentOS下配置Maven环境
  3. process.cwd __dirname __filename 区别
  4. mongoose 数据库设计千万要注意 Cast to [number] failed for value
  5. mongoose 通过账号密码连接 Error: Password contains an illegal unescaped character
  6. vue图片查看控件v-viewer使用
  7. Flutter1.12与原生Android交互(kotlin)
  8. ELK+Kafka部署
  9. linux date 常用格式,5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令...
  10. python3 while循环语句_python While 循环语句