Vue插件之滑动验证码用法详解


Posted in Javascript onApril 05, 2020

本文实例讲述了Vue插件之滑动验证码用法。分享给大家供大家参考,具体如下:

目录

  • 预览
    • 基于滑动式的验证码,免于字母验证码的繁琐输入 用于网页注册或者登录
  • 安装
    • 使用方法
      • 更新记录
        • V1.1.2 版本
        • V1.1.1 描述(此版本有bug,请使用最新版)
        • V1.1.0 版本新增属性`imgs`:
      • 内置方法
      • props传参(均为可选)
      • 自定义回调函数
    • 注意事项

预览

基于滑动式的验证码,免于字母验证码的繁琐输入 用于网页注册或者登录

目前仅前端实现,支持移动端滑动事件。版本V1.1.2

Vue插件之滑动验证码用法详解
github文档地址: https://github.com/monoplasty/vue-monoplasty-slide-verify
gitee镜像地址:https://gitee.com/monoplasty/vue-monoplasty-slide-verify

安装

npm install --save vue-monoplasty-slide-verify

使用方法

// main.js
import Vue from 'vue';
import SlideVerify from 'vue-monoplasty-slide-verify';

Vue.use(SlideVerify);
// template
<slide-verify 
  ref="slideblock"
  @again="onAgain"
  @fulfilled="onFulfilled"
  @success="onSuccess"
  @fail="onFail"
  @refresh="onRefresh"
  :accuracy="accuracy"
  :slider-text="text"
></slide-verify>
<div>{{msg}}</div>

<button @click="handleClick">在父组件可以点我刷新哦</button>
// script
export default {
  name: 'App',
  data(){
    return {
      msg: '',
      text: '向右滑',
      // 精确度小,可允许的误差范围小;为1时,则表示滑块要与凹槽完全重叠,才能验证成功。默认值为5
      accuracy: 1,
    }
  },
  methods: {
    onSuccess(){
      console.log('验证通过');
      this.msg = 'login success'
    },
    onFail(){
      console.log('验证不通过');
      this.msg = ''
    },
    onRefresh(){
      console.log('点击了刷新小图标');
      this.msg = ''
    },
    onFulfilled() {
      console.log('刷新成功啦!');
    },
    onAgain() {
      console.log('检测到非人为操作的哦!');
      this.msg = 'try again';
      // 刷新
      this.$refs.slideblock.reset();
    },
    handleClick() {
    	// 父组件直接可以调用刷新方法
      this.$refs.slideblock.reset();
    },
  }
}

更新记录

V1.1.2 版本

  • 修复imgs 参数不传是的warn

V1.1.1 描述(此版本有bug,请使用最新版)

  • accuracy 精度设置

判断滑块与凹槽位置的误差范围值,默认取值范围为 [1, 10]。若取值不为 -1,则会开启检测非人为操作。人为操作也有可能会触发哦!

判断依据是:滑块的一系列移动坐标的平均值和方差是否相等。若相等则人为是非人为操作。

accuracy为 -1,则表示关闭检测非人为操作,默认开启。开启之后,若检测到为非人为操作,则会触发 again 回调函数

V1.1.0 版本新增属性imgs

  • imgs不传或者传空数组时,图片库默认使用第三方api提供的图片路径。可能加载缓慢;
  • imgs传本地路径时,确保图片路径是否正确。建设传cdn上的图片地址。
  • 详情可参考APP.vue上的写法。或在线查看demo地址

内置方法

  • 在父组件里如果需要重置,可以在父组件中调用子组件reset() 方法
<slide-verify ref="slideblock" ></slide-verify>
// javascript 见使用方法
this.$refs.slideblock.reset();

props传参(均为可选)

参数 类型 默认值 描述 版本
l Number 42 滑块的边长
r Number 10 滑块突出圆的半径
w Number 310 canvas画布的宽
h Number 155 canvas画布的高
sliderText String Slide filled right 滑块底纹文字 1.0.5
imgs Array [] 背景图数组。可不传 1.1.0
accuracy Number 5 滑动验证的误差范围 1.1.2
show Boolean true 是否显示刷新按钮 1.1.2

自定义回调函数

事件名 类型 描述 版本
success Function 验证码匹配成功的回调
fail Function 验证码未匹配的回调
refresh Function 点击刷新按钮后的回调函数
again Function 检测到非人为操作滑动时触发的回调函数 1.1.2
fulfilled Function 刷新成功之后的回调函数 1.1.2

注意事项

目前仅是前端实现,如有什么问题欢迎issue或者留言。

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
js 页面传参数时 参数值含特殊字符的问题
Dec 13 Javascript
JS 的应用开发初探(mootools)
Dec 19 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
Jun 26 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
Aug 14 Javascript
用js读、写、删除Cookie代码续篇
Dec 03 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
Dec 13 Javascript
微信小程序 实战程序简易新闻的制作
Jan 09 Javascript
JavaScript中构造函数与原型链之间的关系详解
Feb 25 Javascript
前端Electron新手入门教程详解
Jun 21 Javascript
微信小程序事件流原理解析
Nov 27 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
Feb 11 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
解决node终端下运行js文件不支持ES6语法
Apr 04 #Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 #jQuery
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
Apr 04 #jQuery
vue中使用v-for时为什么不能用index作为key
Apr 04 #Javascript
详解为什么Vue中不要用index作为key(diff算法)
Apr 04 #Javascript
原理深度解析Vue的响应式更新比React快
Apr 04 #Javascript
Vue的data、computed、watch源码浅谈
Apr 04 #Javascript
You might like
PHP setTime 设置当前时间的代码
2012/08/27 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
总结Javascript中的隐式类型转换
2016/08/24 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
Python和php通信乱码问题解决方法
2014/04/15 Python
python操作ie登陆土豆网的方法
2015/05/09 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
python中threading开启关闭线程操作
2020/05/02 Python
Python matplotlib可视化实例解析
2020/06/01 Python
django的autoreload机制实现
2020/06/03 Python
Python代码执行时间测量模块timeit用法解析
2020/07/01 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
成功的餐厅经营创业计划书
2014/01/15 职场文书
安全检查汇报材料
2014/12/26 职场文书
安全承诺书
2015/01/19 职场文书
建议书格式
2015/02/04 职场文书
银行求职自荐信范文
2015/03/04 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js
python图像处理 PIL Image操作实例
2022/04/09 Python
java版 简单三子棋游戏
2022/05/04 Java/Android