img显示本地图片_vue图片滑动验证

vue图片滑动验证

读完这篇文章,可以掌握如何实现Vue的图片滑动验证,以及滑动验证的自定义显示的图片背景

自定义图片之后的滑动验证背景3ce95fb7db5a23e23d00892db8ea622e.png

首先安装插件支持(先简要概述下组件参数的配置信息和配置位置)
npm install vue-puzzle-vcode
html代码部分
<Vcode :show="isShow" @success="success"/>
其中@success是验证成功之后的回调
js代码部分
import Vcode from "vue-puzzle-vcode";//页面内引用插件
export default {
data(){
return {
isShow: false, // 用来控制显示是否显示图片滑动验证框
}
},
//挂载组件
components:{
Vcode
},
//方法部分
methods:{// 用户通过了验证
success(){
this.isShow = false; // 通过验证后,手动隐藏模态框
},
}
}
组件参数详情
字段类型默认值说明
showBooleanfalse是否显示验证码弹框
canvasWidthNumber310主图区域的宽度
canvasHeightNumber160主图区域的高度
imgsArraynull自定义图片,见下方例子
successTextString"验证通过!"验证成功时的提示文字
failTextString"验证失败,请重试"验证失败时的提示文字
sliderTextString"拖动滑块完成拼图"下方滑动条里的文字

事件

事件名返回值说明
success偏差值验证通过时会触发,返回值是用户移动的距离跟目标距离的偏差值px
fail偏差值验证失败时会触发,返回值同上
closenull用户点击遮罩层的回调
真实项目部分代码,包含默认的验证背景图片和自定义的背景图片代码

使用到的十张图片下载地址 https://files.cnblogs.com/files/nanstar/rePhoto.zip
组件的默认背景4c55f03cf450b8a1954fc624afd58b07.png

//HTML部分




<Vcode :imgs="[img1,img2,img3,img4,img5,img6,img7,img8,img9,img10]"
:show="isShow" @success="success" @fail="fails" @close="closeRe"/>


//JS部分
//引入和挂载
import Vcode from "vue-puzzle-vcode";
//自定义的时候使用了10张图片(我将图片下载到了本地项目内容,所以使用的是路径引用)
import img1 from "../../../public/img/rePhoto/1.jpg";
import img2 from "../../../public/img/rePhoto/2.jpg";
import img3 from "../../../public/img/rePhoto/3.jpg";
import img4 from "../../../public/img/rePhoto/4.jpg";
import img5 from "../../../public/img/rePhoto/5.jpg";
import img6 from "../../../public/img/rePhoto/6.jpg";
import img7 from "../../../public/img/rePhoto/7.jpg";
import img8 from "../../../public/img/rePhoto/8.jpg";
import img9 from "../../../public/img/rePhoto/9.jpg";
import img10 from "../../../public/img/rePhoto/10.jpg";

components: { Vcode },

//参数属性设置
isShow: false, // 验证码模态框是否出现,
photoHua:0,//图片滑动验证的错误次数
//自定义图片的验证部分(返回值部分)
img1,
img2,
img3,
img4,
img5,
img6,
img7,
img8,
img9,
img10,

// 成功的回调
success(){
this.isShow = false; // 通过验证后,关闭图片验证弹出框,让用户继续填写验证码
this.$notify.success({
title:"提示",
message:"请认证填写验证码",
duration:5000
})
this.loginForm.recode = "";//设置验证码部分是空,若是用到项目不可以,请删除这句代码
},
//失败的回调,失败的逻辑是,用户失败指定次数之后,加入弹窗提示信息
fails(){
this.photoHua += 1;
if(this.photoHua > 5){
this.$message({
message: '其实ψ(*`ー´)ψ......你要是一直拼不成功,我会让你一直拼下去的哟...',
type: 'warning'
});
}

},

//点击图片验证的背景部分事件
closeRe(){
this.$message({
message: '请完成滑动验证,验证成功之后验证框会自动消失...(๑╹◡╹)ノ',
type: 'warning'
});
},
本地图片的路径配置信息

a6b29faa793ed94e41eff5b197bb97ef.png

验证超过预定次数提示

26b110a7189f086facd0213b234962f3.png

点击空白背景的提示

f961378000e3184c121a798affaa5fce.png

文章内容为楼主原创,代码有不足之处,若有错误或疑问,可以留言探讨
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值