基于vue图片滑动验证,vue实现登录注册和验证码

  基于vue图片滑动验证,vue实现登录注册和验证码

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

  本文实例为大家分享了某视频剪辑软件实现登录时的图片验证码的具体代码,供大家参考,具体内容如下

  效果图

  

一、新建vue组件components/identify/identify.vue

  模板

  画布

  画布id= s-canvas :width=内容宽度:height=内容高度/canvas

  /div

  /模板

  脚本

  导出默认值{

  名称:侧面识别,

  道具:{

  识别码:{

  类型:字符串,

  默认值:"1234"

  },

  fontSizeMin: {

  类型:数量,

  默认值:28

  },

  fontSizeMax: {

  类型:数量,

  默认值:40

  },

  backgroundColorMin: {

  类型:数量,

  默认值:180

  },

  backgroundColorMax: {

  类型:数量,

  默认值:240

  },

  colorMin: {

  类型:数量,

  默认值:50

  },

  colorMax: {

  类型:数量,

  默认值:160

  },

  lineColorMin: {

  类型:数量,

  默认值:40

  },

  lineColorMax: {

  类型:数量,

  默认值:180

  },

  dotColorMin: {

  类型:数量,

  默认值:0

  },

  dotColorMax: {

  类型:数量,

  默认值:255

  },

  内容宽度:{

  类型:数量,

  默认值:112

  },

  内容高度:{

  类型:数量,

  默认值:40

  }

  },

  方法:{

  //生成一个随机数

  随机编号(最小值,最大值){

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

  },

  //生成一个随机的颜色

  随机颜色(最小值,最大值){

  var r=this.randomNum(最小值,最大值)

  var g=this.randomNum(最小值,最大值)

  var b=this.randomNum(最小值,最大值)

  返回" rgb( r , g , b )"

  },

  drawPic () {

  var canvas=文档。getelementbyid( s-canvas )

  var ctx=canvas.getContext(2d )

  ctx.textBaseline=bottom

  //绘制背景

  ctx.fillStyle=this.randomColor(

  this.backgroundColorMin,

  this.backgroundColorMax

  )

  ctx.fillRect(0,0,this.contentWidth,this.contentHeight)

  //绘制文字

  对于(设I=0;我这个。识别代码。长度;i ) {

  this.drawText(ctx,this.identifyCode[i],I)

  }

  本。画线(ctx)

  这个。绘图点(ctx)

  },

  drawText (ctx,txt,i) {

  CTX。填充样式=this。随机颜色(这个。color min,this.colorMax)

  ctx.font=

  这个。random num(这个。最小字体大小,this.fontSizeMax) px SimHei

  var x=(I ^ 1)*(这个。内容宽度/(这个。识别代码。长度^ 1))

  var y=this。random num(这个。最大字体大小,this.contentHeight - 5)

  var deg=this.randomNum(-30,30)

  //修改坐标原点和旋转角度

  ctx.translate(x,y)

  ctx.rotate(deg * Math .PI/270)

  ctx.fillText(txt,0,0)

  //恢复坐标原点和旋转角度

  ctx.rotate(-deg * Math .PI/270)

  ctx.translate(-x,-y)

  },

  绘制线(ctx) {

  //绘制干扰线

  对于(设I=0;I 2;i ) {

  CTX。笔画风格=这个。随机颜色(

  this.lineColorMin,

  this.lineColorMax

  )

  ctx.beginPath()

  ctx.moveTo(

  this.randomNum(0,this.contentWidth),

  this.randomNum(0,this.contentHeight)

  )

  ctx.lineTo(

  this.randomNum(0,this.contentWidth),

  this.randomNum(0,this.contentHeight)

  )

  ctx.stroke()

  }

  },

  绘图点(ctx) {

  //绘制干扰点

  对于(设I=0;i 20i ) {

  CTX。填充样式=this。随机颜色(0.255)

  ctx.beginPath()

  ctx.arc(

  this.randomNum(0,this.contentWidth),

  this.randomNum(0,this.contentHeight),

  1,

  0,

  2 *数学。产品改进(产品改进)

  )

  ctx.fill()

  }

  }

  },

  观察:{

  identifyCode () {

  this.drawPic()

  }

  },

  已安装(){

  this.drawPic()

  }

  }

  /脚本

  style lang=less 范围。表示“上帝的”: sblood画布{

  高度:38px

  }。帆布画布

  边距-顶部:1px

  左边距:8px

  }

  /风格

  

二、需要地方引入

  模板

  span @ click=刷新代码 style= cursor:pointer;

  s-identify:识别码=识别码/s-identify

  /span

  /模板

  脚本

  //引入图片验证码组件

  从" @/组件/标识"导入侧标识

  导出默认值{

  组件:{ SIdentify },

  data() {

  返回{

  //图片验证码

  识别码:"",

  //验证码规则

  识别码:" 3456789ABCDEFGHGKMNPQRSTUVWXY ",

  }

  },

  方法:{

  //切换验证码

  refreshCode() {

  this.identifyCode=

  这个。做代码(这个。识别代码,4)

  },

  //生成随机验证码

  makeCode(o,l) {

  对于(设I=0;I l;i ) {

  这个。识别码=这个。识别代码[

  数学。地板(数学。random()*(这个。识别代码。长度-0)0)

  ]

  }

  },

  }

  }

  /脚本

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

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

相关文章阅读

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