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_01_isPlainObject分析与重构
Oct 20 Javascript
js的表单操作 简单计算器
Dec 29 Javascript
JavaScript中OnLoad几种使用方法
Dec 15 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
Sep 07 Javascript
Vue.js表单控件实践
Oct 27 Javascript
vue2.0实现导航菜单切换效果
May 08 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
Dec 28 Javascript
微信小程序使用template标签实现五星评分功能
Nov 03 Javascript
JQuery属性操作与循环用法示例
May 15 jQuery
JS实现多选框的操作
Jun 24 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
Oct 30 Javascript
浅谈JS的原型和原型链
Jun 04 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 全局变量范围分析
2009/08/07 PHP
xml在joomla表单中的应用详解分享
2012/07/19 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
tensorflow输出权重值和偏差的方法
2018/02/10 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
聊聊python中的异常嵌套
2020/09/01 Python
Allen Edmonds官方网站:一家美国优质男士鞋类及配饰制造商
2019/03/12 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
银行介绍信范文
2014/01/10 职场文书
法制宣传实施方案
2014/03/13 职场文书
2014年教师节寄语
2014/04/03 职场文书
文明市民先进事迹
2014/05/15 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
导游词之潮音寺
2019/09/26 职场文书
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS