vue滑块验证插件,vue图片验证码插件

  vue滑块验证插件,vue图片验证码插件

  这篇文章主要为大家详细介绍了某视频剪辑软件自定义开发滑动图片验证组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  纯前端,通过帆布来自定义开发滑动图片验证,反过来也能完成纯滑动验证。

  模板

  div class=验证ref=验证

  !-画布部分-

  画布ref= slide verify class= slide-img /画布

  div style=display:none

  img ref= imgs :src= img list[imgIndex]/

  /div

  !-下面滑块部分-

  div class= slide-wrapper BG-start

  !-滑块-

  div class= BTN ref= BTN @ mouseDown= mouseDown @ mouseUp= mouseUp /div

  p class= text ref= text { content } }/p

  div class=bg ref=bg/div

  /div

  !-刷新按钮-

  按钮class= refresh @ click= refresh /按钮

  /div

  /模板

  脚本

  导出默认值{

  data () {

  返回{

  imgIndex: 0,

  区块画布:空

  imgList: [require(./assets/1.png ),

  要求(./assets/3.png ),

  要求(./assets/4.png ),

  要求(./assets/5.png) ],

  内容: 滑动滑块,

  isDown: false,//鼠标是否按下

  btnX: 0,

  imgX: 0

  }

  },

  已安装(){

  这个。imgindex=this。随机数(0,4)

  文档。addevent侦听器( mousemove ,this.mouseMove)

  this.imageCanvas()

  },

  方法:{

  //生成随机数字

  随机数(最小值,最大值){

  回归数学。地板(数学。random()*(max-min)min)

  },

  //鼠标按下时

  鼠标按下(e) {

  this.isDown=true

  this.btnX=e.clientX - this .$refs.btn.offsetLeft

  },

  //鼠标滑动时

  鼠标移动(e) {

  //滑块左端向右边移动的距离

  设moveX=e.clientX - this.btnX

  如果(this.isDown) {

  //滑块滑动时不能超过的距离

  如果(这个refs.btn.offsetLeft=259 this .$refs.btn.offsetLeft=0) {

  这个参考文献。BTN。风格。left=` ${ moveX } px ` 1

  这个。块状画布。风格。left=` $ { moveX-this。imgx } px ` 1

  这个参考文献。BG。风格。width=` ${ moveX } px ` 1

  }

  }

  },

  //滑动中松开

  mouseUp () {

  让leftX=this .$refs.btn.offsetLeft

  //方块的位置和缺失的位置重合允许左右2px的误差

  如果(这个。imgx=leftX-1 this。imgx=leftX 1){

  //滑动成功时的逻辑

  这个参考文献。BTN。班级名单。添加(“BTN成功”)

  this.isDown=false

  }

  //如果滑动失败,滑块自动回到左边

  如果(this.isDown) {

  这个. refs.btn.style.left=0

  这个。块状画布。风格。left=`-$ {这个。imgx } px ` 1

  这个. refs.bg.style.width=0

  }

  //开关原则

  this.isDown=false

  },

  //画图

  imageCanvas () {

  这个。块画布=这个。块画布?this.blockCanvas.remove() : null

  这个。块画布=这个。创建画布(300,150)

  这个参考文献。验证。在(此之前插入。块帆布,这个.$refs.slideVerify)

  设x=this.randomNumber(60,200)

  让y=40

  this.imgX=x

  让c=这个refs.slideVerify

  设bg=c.getContext(2d )

  让img=这个refs.imgs

  设bk=这个。块状画布。获取上下文(“2d”)

  //在两块画布上都放上相同的图片

  img.onload=()={

  bg.drawImage(img,0,0)

  bk.drawImage(img,0,0)

  }

  this.drawBlock(bg,x,y,“fill”)

  this.drawBlock(bk,x,y, clip )

  },

  //画抠出来的方块

  拉伸块(ctx,x,y,类型){

  ctx.beginPath()

  ctx.moveTo(x,y)

  ctx.arc(x 42/2,y - 9 2,9,0.72 *数学。圆周率,2.26 *数学.)

  ctx.lineTo(x 42,y)

  ctx.arc(x 42 9 - 2,y 42/2,9,1.21 *数学。圆周率,2.78 *数学.)

  ctx.lineTo(x 42,y 42)

  ctx.lineTo(x,y 42)

  ctx.arc(x 9 - 2,y 42/2,9 0.4,2.76 *数学。圆周率,1.24 *数学。圆周率,真)

  ctx.lineTo(x,y)

  ctx.lineWidth=2

  ctx.fillStyle=rgba(255,255,255,0.7)

  ctx.strokeStyle=rgba(255,255,255,0.7)

  ctx.stroke()

  CTX[类型]()

  CTX。globalcompositeoperation= destination-over

  //解决进入页面时不自动扣拼图样式的麻烦(有时需要鼠标点击后才会出现裁剪后的拼图)

  这个。块状画布。风格。left=-$ { x } px

  },

  //刷新

  刷新()>

  //有时会出现点击刷新,随机数返回的数字和上次存储的一样,画布清空后但是填充时没有改变;所以当一样时,不会执行刷新操作

  如果(这个。img指数==这个。randomnumber(0,4))-如果

  返回错误的

  }

  此。清洁()

  这一点. refs.btn.style.left=0

  这一点. refs.bg.style.width=0

  这一点参考文献。BTN。班级名单。删除(“BTN访问”).

  此。isdn=false//鼠标是否按下

  此。btnX=0 //鼠标点击的水平位置与滑块移动水平位置的差

  this.imgX=0

  this.imageCanvas("恢复")

  这个。img指数=这个。randomnumber(0,4)

  },

  //清空-肉桂

  清洁()

  让cx2=这个.$参考文献。幻灯片验证。获取上下文(“2d”)中

  cx2。clearrect(0.0、300、150)

  },

  //新建-肉桂

  创建画布(宽度、高度)

  const canvas=文档。创建元素(“画布”).

  画布宽度=宽度

  画布高度=身高。

  画布。风格。位置=绝对

  返回帆布

  }

  }

  }

  /脚本

  操蛋的风格。验证[

  位置:相对;

  宽度:300像素

  边距:0汽车;

  }。幻灯片封套[

  位置:相对;

  宽度:300像素

  高度:40px

  }。锥齿轮启动[

  背景:学员;

  }。BG[

  位置:绝对;

  高度:40px

  背景:#ccc

  }。文本[

  位置:绝对;

  宽度:100%;

  高度:40px

  文字对齐:中心;

  线路高度:40px

  页边距:0;

  /* z指数:1;*/

  }。文本-成功[

  颜色:白色;

  z指数:2;

  }。按钮

  位置:绝对;

  宽度:40px

  高度:40px

  z指数:1;

  边界半径:5px

  背景:rgb(143、145、148);

  文字对齐:中心;

  字体大小:24px

  颜色:白色;

  盒影:0 0 1 px 1 px #fff

  背景:#fff无重复中心URL( data:image/png;-伊甸园字幕组=-翻译:粒粒粒粒粒尘紫月猫姐风景校对:粒尘紫月猫姐风景校对:粒尘紫月猫姐校对:粒尘紫月猫姐时间轴:粒尘紫月猫姐校对:粒尘紫月猫姐时间轴:粒尘紫月猫姐校对:粒尘紫月猫姐时间轴:粒尘紫月猫姐校对:粒尘月猫姐时间轴:粒尘月猫姐时间轴:粒尘月猫姐时间轴:粒尘月猫姐校对:粒尘月猫姐时间轴:粒尘月猫姐时间轴:粒尘

  }。BTN成功

  背景:#fff无重复中心URL( data:image/png;-伊甸园字幕组=-翻译:粒粒粒粒粒尘紫月猫姐风景校对:粒尘紫月猫姐风景校对:粒尘紫月猫姐校对:粒尘紫月猫姐时间轴:粒尘紫月猫姐校对:粒尘紫月猫姐时间轴:粒尘紫月猫姐校对:粒尘紫月猫姐时间轴:粒尘紫月猫姐校对:粒尘月猫姐时间轴:粒尘月猫姐时间轴:粒尘月猫姐时间轴:粒尘月猫姐校对:粒尘月猫姐时间轴:粒尘月猫姐时间轴:粒尘

  }。刷新[

  光标:指针;

  宽度:20像素

  高度:20像素

  位置:绝对;

  z指数:1;

  顶部:0;

  右:10px

  不透明:6;

  背景:url(-什么/assets/ref . jpg’)无重复;

  背景大小:封面;

  }

  /风格

  完成效果图

  滑动完成时

  因为允许1px的差距,可以自己改

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • qq短信验证码发送失败怎么回事,qq验证码失败是怎么回事
  • ,,使用阿里大于(大鱼)平台进行发送手机验证码的流程
  • ,,SpringSceurity实现短信验证码登陆
  • android读取短信验证码,
  • android读取短信验证码,,Android使用MobSDK短信验证
  • android自动获取短信验证码功能在哪,安卓自动获取短信验证码
  • android自动获取短信验证码功能在哪,android自动获取短信验证码功能失效,Android自动获取短信验证码功能
  • android实现短信验证码自动填写功能是什么,安卓短信验证码自动填充 实现
  • android实现短信验证码自动填写功能是什么,安卓短信验证码自动填充 实现,Android实现短信验证码自动填写功能
  • android如何通过手机自动获取短信验证码信息,安卓自动获取短信验证码
  • android如何通过手机自动获取短信验证码信息,安卓自动获取短信验证码,Android如何通过手机自动获取短信验证码
  • ,,python网络爬虫实现发送短信验证码的方法
  • ,,Python实现滑块拼图验证码详解
  • ,,python3 破解 geetest(极验)的滑块验证码功能
  • 发验证码不在桌面显示,验证码能收到桌面上不显示怎么回事
  • 留言与评论(共有 条评论)
       
    验证码: