• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > vue.js怎么实现验证码

vue.js怎么实现验证码

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了vue.js,vue验证码等相关知识,希望对您有所帮助

vue实现验证码的方法:1、创建js组件;2、引入组件;3、定义验证对象;4、初始化节点;5、通过validate()方法验证输入的是否正确即可。


vue.js怎么实现验证码


Vue实现验证码功能,具体内容如下


1、效果


vue.js怎么实现验证码


2、代码

2.1 创建js组件


vue.js怎么实现验证码


内容(可直接粘贴过去,需要改宽度和高度,修改_init方法中的宽和高)

function GVerify (options) { // 创建一个图形验证码对象,接收options对象为参数  this.options = { // 默认options参数值    id: '', // 容器Id    canvasId: 'verifyCanvas', // canvas的ID    width: '80', // 默认canvas宽度    height: '30', // 默认canvas高度    type: 'number', // 图形验证码默认类型blend:数字字母混合类型、number:纯数字、letter:纯字母    code: ''  }    if (Object.prototype.toString.call(options) === '[object Object]') { // 判断传入参数类型    for (var i in options) { // 根据传入的参数,修改默认参数值      this.options[i] = options[i]    }  } else {    this.options.id = options  }    this.options.numArr = '0,1,2,3,4,5,6,7,8,9'.split(',')  this.options.letterArr = getAllLetter()    this._init()  this.refresh()}  GVerify.prototype = {  /** 版本号**/  version: '1.0.0',    /** 初始化方法**/  _init: function () {    var con = document.getElementById(this.options.id)    var canvas = document.createElement('canvas')    // this.options.width = con.offsetWidth > 0 ? con.offsetWidth : '30'    // this.options.height = con.offsetHeight > 0 ? con.offsetHeight : '30'    this.options.width = '160'    this.options.height = '50'    canvas.id = this.options.canvasId    canvas.width = this.options.width    canvas.height = this.options.height    canvas.style.cursor = 'pointer'    canvas.innerHTML = '您的浏览器版本不支持canvas'    con.appendChild(canvas)    var parent = this    canvas.onclick = function () {      parent.refresh()    }  },    /** 生成验证码**/  refresh: function () {    var canvas = document.getElementById(this.options.canvasId)    if (canvas.getContext) {      var ctx = canvas.getContext('2d')    }    ctx.textBaseline = 'middle'      ctx.fillStyle = randomColor(180, 240)    ctx.fillRect(0, 0, this.options.width, this.options.height)      if (this.options.type === 'blend') { // 判断验证码类型      var txtArr = this.options.numArr.concat(this.options.letterArr)    } else if (this.options.type === 'number') {      var txtArr = this.options.numArr    } else {      var txtArr = this.options.letterArr    }      for (var i = 1; i <= 4; i++) {      var txt = txtArr[randomNum(0, txtArr.length)]      this.options.code += txt      ctx.font = randomNum(this.options.height / 2, this.options.height) + 'px SimHei' // 随机生成字体大小      ctx.fillStyle = randomColor(50, 160) // 随机生成字体颜色      ctx.shadowOffsetX = randomNum(-3, 3)      ctx.shadowOffsetY = randomNum(-3, 3)      ctx.shadowBlur = randomNum(-3, 3)      ctx.shadowColor = 'rgba(0, 0, 0, 0.3)'      var x = this.options.width / 5 * i      var y = this.options.height / 2      var deg = randomNum(-30, 30)      /** 设置旋转角度和坐标原点**/      ctx.translate(x, y)      ctx.rotate(deg * Math.PI / 180)      ctx.fillText(txt, 0, 0)      /** 恢复旋转角度和坐标原点**/      ctx.rotate(-deg * Math.PI / 180)      ctx.translate(-x, -y)    }    /** 绘制干扰线**/    for (var i = 0; i < 4; i++) {      ctx.strokeStyle = randomColor(40, 180)      ctx.beginPath()      ctx.moveTo(randomNum(0, this.options.width), randomNum(0, this.options.height))      ctx.lineTo(randomNum(0, this.options.width), randomNum(0, this.options.height))      ctx.stroke()    }    /** 绘制干扰点**/    for (var i = 0; i < this.options.width / 4; i++) {      ctx.fillStyle = randomColor(0, 255)      ctx.beginPath()      ctx.arc(randomNum(0, this.options.width), randomNum(0, this.options.height), 1, 0, 2 * Math.PI)      ctx.fill()    }  },    /** 验证验证码**
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • vue.js如何实现数字滚动增加效果?代码示例
  • Ember.js和Vue.js对比,哪个框架更优秀?
  • vue.js路由this.route.push跳转页面不刷新怎么办
  • vue.js怎么实现二级下拉悬浮菜单
  • vue.js项目怎么实现百度地图显示
  • vue.js如何实现移入移出效果
  • vue.js如何实现弹窗功能
  • vue.js怎么实现验证码
  • vue.js如何实现可拖拽菜单
  • vue.js如何实现列表滚动循环

相关文章

  • 聊聊TP在app接口开发过程中的安全验证问题
  • Photoshop简单的绘制逼真的小汽车教程
  • Dedecms文章审核后给会员增加积分或者金币的办法
  • Thinkphp+layer+ajax如何完成增加方法(附代码示例)
  • PS制作超逼真霓虹灯效果文字
  • Illustrator创建立体风格的黑胶唱机图标
  • PS制作超酷黑白像素文字效果
  • DEDECMS让广告延时加载,提高网页打开速度
  • DEDECMS网页TITLE标签修改的利于SEO优化
  • PS制作逼真的蕾丝花边文字效果的教程

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Javascript获取日期的方法是什么
    • Photoshop制作卡通风格的3D立体字教程
    • PHP高级检索功能的实现以及动态拼接sql
    • 防止SyntaxHighlighter.js的代码高亮时闪一下的解决方法
    • BootstrapTable如何重新加载数据?3种方式了解一下!
    • 替换uploadify用Huploadify实现上传图片或文件
    • Photoshop从零开始设计漂亮的网页模板
    • 帝国CMS灵动标签调用当天更新的标题文字显示红色其他颜色变成灰色
    • Illustrator绘制水晶质感苹果标志
    • phpmyadmin怎么使用空密码登入

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有