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 相关文章推荐
一个JQuery操作Table的代码分享
Mar 30 Javascript
jQuery插件开发基础简单介绍
Jan 07 Javascript
document节点对象的获取方式示例介绍
Dec 24 Javascript
jQuery中:reset选择器用法实例
Jan 04 Javascript
jQuery实现3D文字特效的方法
Mar 10 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
Dec 03 Javascript
Javascript 基础---Ajax入门必看
Jul 06 Javascript
使用Curl命令查看请求响应时间方法
Nov 04 Javascript
Vue.js实现一个todo-list的上移下移删除功能
Jun 26 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
Oct 30 Javascript
使用js实现单链解决前端队列问题的方法
Feb 03 Javascript
深入webpack打包原理及loader和plugin的实现
May 06 Javascript
解决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调用三种数据库的方法(3)
2006/10/09 PHP
由php的call_user_func传reference引发的思考
2010/07/23 PHP
优化PHP程序的方法小结
2012/02/23 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
javascript hashtable 修正版 下载
2010/12/30 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
在Django中限制已登录用户的访问的方法
2015/07/23 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
python高级特性简介
2020/08/13 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
html5时钟实现代码
2010/10/22 HTML / CSS
蛋白质世界:Protein World
2017/11/23 全球购物
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
5s标语大全
2014/06/23 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
对照检查剖析材料
2014/09/30 职场文书
加薪通知
2015/04/25 职场文书
班主任工作总结范文
2015/08/13 职场文书