vue-puzzle-vcode与vue-drag-verify纯前端的拼图人机验证、右滑拼图验证
转载作品!以获取原作者允许,原文地址,感觉写的比较全面,也比较实用,大家可以去看看原文章;
纯前端的拼图人机验证、右滑拼图验证
1、vue-puzzle-vcode
效果图

示例
import Vcode from "vue-puzzle-vcode";
<Vcode
:show="isShow"
:canvasWidth="400"
:canvasHeight="250"
:puzzleScale="1"
:sliderSize="40"
:range="10"
:imgs="[Img1, Img2]"
successText="验证成功!"
failText="验证失败,请重试!"
sliderText="拖动滑块验证"
@success="onSuccess"
@fail="onFail"
/>
参数
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| show | Boolean | false | 是否显示验证码弹框 |
| canvasWidth | Number | 310 | 主图区域的宽度,单位 px |
| canvasHeight | Number | 160 | 主图区域的高度,单位 px |
| puzzleScale | Number | 1 | 拼图块(小的拼图)的大小比例,0.2 ~ 2 ,数字越大,拼图越大 |
| sliderSize | Number | 50 | 左下角用户拖动的那个滑块的尺寸,单位 px |
| range | Number | 10 | 判断成功的误差范围,单位 px, 滑动的距离和拼图的距离小于等于此值时,会判定重合 |
| imgs | Array | null | 自定义图片,见下方例子 |
| successText | String | "验证通过!" | 验证成功时的提示文字 |
| failText | String | "验证失败,请重试" | 验证失败时的提示文字 |
| sliderText | String | "拖动滑块完成拼图" | 下方滑动条里的文字 |
事件
| 事件名 | 返回值 | 说明 |
|---|---|---|
| success | 偏差值 | 验证通过时会触发,返回值是用户移动的距离跟目标距离的偏差值 px |
| fail | 偏差值 | 验证失败时会触发,返回值同上 |
| close | null | 用户点击遮罩层的回调 |
现在这个也是支持vue3的,大家可以去github上看具体教程
2、vue-drag-verify
效果图

示例
import dragVerify from "vue-drag-verify";
<drag-verify
:width="300"
:height="50"
text="拖拽滑块右滑验证"
successText="验证成功"
background="#ccc"
color="#fff"
progressBarBg="#ff9"
completedBg="#58bc58"
:circle="true"
handlerIcon="el-icon-thumb"
successIcon="el-icon-check"
handlerBg="#F9B344"
textSize="16px"
@passcallback="onPasscallback"
/>
属性
| 参数 | 类型 | 属性 | 说明 |
|---|---|---|---|
| width | Number | 200 | 组件的宽度 |
| height | Number | 60 | 组件的高度 |
| text | String | swiping to the right side | 文本显示在组件上 |
| successText | String | success | 文本显示何时成功 |
| background | String | #ccc | 组件的背景颜色 |
| color | String | #ffffff | 文字的颜色 |
| progressBarBg | String | #FFFF99 | 进度条的背景颜色 |
| completedBg | String | #66cc66 | 按钮拖到右侧时组件的背景颜色 |
| circle | Boolean | true | 如果为真,则组件的形状为圆形 |
| handlerIcon | String | - | 处理程序的图标 |
| successIcon | String | - | 按钮拖到右侧时的处理程序图标 |
| handlerBg | String | #fff | 处理程序的背景颜色 |
| textSize | String | 20px | 提示信息的字体大小 |
事件
| 事件名 | 说明 |
|---|---|
| passcallback | 通过验证时发出,处理程序拖动到右侧。 |
3、基于vue-drag-verify二次开发的vue组件
注意:需对父元素或html设置user-select: none
github地址:https://github.com/yimijianfang/vue-drag-verify
效果图1

示例1
import dragVerify from "vue-drag-verify2";
<drag-verify
ref="verify1"
:isPassing="isPassing1"
:width="400"
:height="50"
text="拖拽验证"
successText="验证成功"
background="#ccc"
progressBarBg="#76C61D"
handlerBg="#edebe9"
completedBg="#43a047"
:circle="false"
radius="15px"
handlerIcon="el-icon-d-arrow-right"
successIcon="el-icon-circle-check"
textSize="16px"
textColor="#000"
@passcallback="onPasscallback"
@passfail="onPassfail"
>
<i v-show="!isPassing1" slot="textBefore" class="el-icon-lock"></i>
</drag-verify>
效果图2

示例2
import dragVerifyImg from "vue-drag-verify-img";
<drag-verify-img
ref="verify2"
:isPassing="isPassing2"
:imgsrc="Img1"
:width="400"
:height="50"
text="拖拽验证"
successText="验证成功"
background="#ccc"
progressBarBg="#76C61D"
handlerBg="#edebe9"
completedBg="#43a047"
:circle="false"
handlerIcon="el-icon-d-arrow-right"
successIcon="el-icon-circle-check"
textSize="16px"
textColor="#000"
:barWidth="100"
:barHeight="50"
:barRadius="25"
:showRefresh="true"
refreshIcon="el-icon-refresh"
:showTips="true"
successTip="验证成功"
failTip="验证失败,拖动滑块将悬浮图像正确合并"
:diffWidth="10"
@refresh="reset2"
@passcallback="onPasscallback"
@passfail="onPassfail"
/>
效果图3

示例3
import dragVerifyImgChip from "vue-drag-verify-img-chip";
<drag-verify-img-chip
ref="verify3"
:isPassing="isPassing3"
:imgsrc="Img2"
:width="400"
:height="50"
text="拖拽验证"
successText="验证成功"
background="#ccc"
progressBarBg="#76C61D"
handlerBg="#edebe9"
completedBg="#43a047"
:circle="false"
handlerIcon="el-icon-d-arrow-right"
successIcon="el-icon-circle-check"
textSize="16px"
textColor="#000"
:barWidth="40"
:barRadius="8"
:showRefresh="true"
refreshIcon="el-icon-refresh"
:showTips="true"
successTip="验证成功"
failTip="验证失败,拖动滑块将悬浮图像正确合并"
:diffWidth="10"
@refresh="reset3"
@passcallback="onPasscallback"
@passfail="onPassfail"
/>
效果图4

示例4
import dragVerifyImgRotate from "vue-drag-verify-img-rotate";
<drag-verify-img-rotate
ref="verify4"
:isPassing="isPassing4"
:imgsrc="Img3"
:width="400"
:height="50"
text="拖拽旋转图片"
successText="验证成功"
background="#ccc"
progressBarBg="#76C61D"
handlerBg="#edebe9"
completedBg="#43a047"
:circle="false"
radius="4px"
handlerIcon="el-icon-d-arrow-right"
successIcon="el-icon-circle-check"
textSize="16px"
textColor="#000"
:showRefresh="true"
refreshIcon="el-icon-refresh"
:showTips="true"
successTip="验证成功"
failTip="验证失败,拖动滑块将悬浮图像正确合并"
:diffDegree="10"
:minDegree="90"
:maxDegree="270"
@passcallback="onPasscallback"
@passfail="onPassfail"
/>
vue-puzzle-vcode与vue-drag-verify纯前端的拼图人机验证、右滑拼图验证的更多相关文章
- HTML5时代的纯前端上传图片预览及严格图片格式验证函数(转载)
原文地址:http://www.2cto.com/kf/201401/274752.html 一.要解决什么样的问题? 在写这个函数之前,有们童鞋在群里问如何纯前端严格验证图片格式.这在html5时代 ...
- Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇--纯前端多页面) @(HTML/JS) 一般来说,使用vue做成单页应用比较好,但特殊情况下,需要使用多页面也有另外 ...
- vue后台_纯前端实现excel导出/csv导出
之前的文件下载功能一般是由前后端配合实现,由于项目需要,纯前端实现了一把excel的导出功能: 一.excel导出 1.安装依赖库 xlsx:这是一个功能强大的excel处理库,但是上手难度也很大,还 ...
- Vue 2.5 发布了:15篇前端热文回看
Vue 2.5 发布了:15篇前端热文回看 2017-11-02 前端大全 (点击上方公众号,可快速关注) 本文精选了「前端大全」2017 年 10 月的 15 篇热门文章.其中有职场分享.技术分享和 ...
- 简单vue项目脚手架(vue+webpack2.0+vuex+vue-router)
github地址 使用技术栈 webpack(^2.6.1) webpack-dev-server(^2.4.5) vue(^2.3.3) vuex(^2.3.1) vue-router(^2.5.3 ...
- 【Vue】详解Vue组件系统
Vue渲染的两大基础方式 new 一个Vue的实例 这个我们一般会使用在挂载根节点这一初始化操作上: new Vue({ el: '#app' }) 注册组件并使用—— 全局注册 通过Vue.comp ...
- 【Vue】浅谈Vue(一):从模板语法数据绑定、指令到计算属性
写在前面 今年前端届比较有意思,从大漠穷秋发表文章比较angular和vue,继而致歉vue作者.社区,从谷歌辞去Angular Developer PM in China一职并且呼吁大家停止各种无谓 ...
- 前端笔记之Vue(一)初识SPA和Vue&webpack配置和vue安装&指令
一.单页面应用(SPA) 1.1 C/S到B/S页面架构的转变 C/S:客户端/服务器(Client/Server)架构的软件. C/S 软件的特点: ① 从window桌面双击打开 ② 更新的时候会 ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十七 ║Vue基础:使用Vue.js 来画博客首页+指令(一)
缘起 书说前两篇文章<十五 ║ Vue前篇:JS对象&字面量&this>和 <十六 ║ Vue前篇:ES6初体验 & 模块化编程>,已经通过对js面向对 ...
- 简简单单的Vue4(vue-cie@3.x,vue’Debug[调试],vue‘sHttp)
既然选择了远方,便只顾风雨兼程! __HANS许 系列:零基础搭建前后端分离项目 系列:零基础搭建前后端分离项目 vue-cli@3.x 创建项目 Vue的Debug(调试) Vue的Http请求 提 ...
随机推荐
- 一个或多个C文件编译KO
参考文档:.c文件如何编译为ko的MAKEFILE文件编写 - young525 - 博客园 (cnblogs.com) 文档组织结构 header目录:存放头文件 source目录:存放源文件 单个 ...
- Linux signal()函数
这是在网易云课堂学习Linux下的signal()函数的笔记,课程链接:https://study.163.com/course/courseLearn.htm?courseId=1002913011 ...
- Vue前端的搭建(与后端JavaEE的连接)
目录 前端平台搭建(Vue2.6,App:HBulderX) 创建Vue2.6项目 下载相应插件方便开发 路由配置 对连接后端进行一些配置(main.js文件) 导入ElementUI组件 组件 | ...
- Java 集合的概念
目录 集合 单列集合(Collection) Collection中的一些方法 public static < T > boolean addAll(Collection<? sup ...
- 解决java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone
错误描述: 使用JDBC连接数据库是产生错误 应该是数据库时区问题,在url配置时设置serverTimezone = GMT即可 url = "jdbc:mysql://localhost ...
- ABC319题解
直接从 D 开始了. D 可可爱爱的二分捏. check 就按照题目里写的就行了. 然后 \(l\) 的初值要注意一下,就是 \(\max^{i \le n}_{i=1}a_i\). 代码: #inc ...
- edge ctrl+c 复制不起作用
现象: 在edge中选中文字时,按一次ctrl+c,到其它程序ctrl+v,并不是你选中的内容. 需要在edge中按2次ctrl+c才行. --- 当你选中文字时,会出现一个三个点的菜单,点击后会出现 ...
- MySQL插入中文数据时发生错误或者乱码的一些坑
最近新入职的工作,火急火燎就下了个mysql,没想到安装时配置没弄好.今天在测试数据时,插入中文数据到mysql都是问号,先后查了半天修改表结构,数据库编码,my.ini文件都没有用. 首先第一步,打 ...
- java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $ pack ...
- typora中LaTeX公式常用指令
# typora中LaTeX公式常用指令 以下指令只能保证在typora中完美显示,但是在其他编辑器中可能会部分不支持 \cal F.X.Y = KaTeX parse error: Expected ...