canvas技术开发(用canvas显示验证码的实现)
canvas技术开发
用canvas显示验证码的实现最近做了一个小需求,就是点击删除按钮,弹出提示弹框让你输入验证码确认删除。
那么怎么显示从后台获取的验证码供用户输入呢?我在理解需求时还以为是后台直接把验证码发到用户的手机上 然后让其输入,其实不然,我理解错了,应该用 canvas
把验证码画出来。
理解需求之后我扒着有验证码的网址看,开始 canvas
画图之旅。
技术栈: quasar
(基于vue的一种框架) / canvas
点击删除按钮,触发弹框弹出
弹框为什么会弹出呢? 因为点击删除按钮,触发 handleAddDialogOpened
事件,使得data里面的 addDialogOpened
由false变成true,弹框就由之前的不显示变成显示啦。
如图代码是弹框代码:其中 canvas
标签上的 ref
是多余的,抱歉呐,忘记删掉了
data
里面定义的数据:定义 canvas
画布的宽高
verifyCode_
绑定用户输入input框的验证码
computed
计算属性里面 mapState
映射 verifyCode
数据, mapState
是辅助函数,用于帮助我们简化生成计算属性,不懂的可以扒着 vuex
的官网瞅瞅
mapActions
也是辅助函数,用于将组件的方法映射为 store.dispatch
getVerifyCode
就是向后台获取验证的请求方法
canvasclick
方法用于 当用户辨认不清验证码,或者输入错误重新输入时,点击 换一个
即可更新验证码(此时要重新从后台获取验证码) 后台小哥哥不打烊呐~~~
核心代码: drawPic()
方法就是画验证码的核心方法
1 获取画布标签 使用 getElementById
原生获取 dom
2 使用 .getContext('2d')
准备画布 .textBaseline
定义画布描绘的基线
3 绘制背景
4 绘制验证码
5 绘制干扰视觉的线和点
drawText()
绘制验证码的方法
drawLine()
绘制干扰线的方法
drawDot()
绘制干扰点的方法
定义弹框弹出的方法以及删除的方法, 回归需求
,到此这个需求就完成了 可以和后台联调,没啥问题就可提交代码啦
总结:
a. 遇到没有做过的需求,要去看看别人怎么做的,目前还没有难到要你自己创新,没有任何类比的代码
b. 善于使用debugger调试代码,看看自己代码那里出了问题,有bug不要慌,喝口水,去debugger打断点深入理解代码执行逻辑,效率解决
c. 作为社畜大军的一员,要自律, 要输出
,要锻炼,有时间还要看看代码大全,地铁上撸撸MDN文档,扎实js, 期待那个你想成为的你, 共勉
到此这篇关于用canvas显示验证码的实现的文章就介绍到这了,更多相关canvas显示验证码内容请搜索开心学习网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持开心学习网!
- canvas图片填充位置(手摸手教你用canvas实现给图片添加平铺水印的实现)
- html使用canvas画矩形(CSS、SVG和canvas分别实现文本文字纹理叠加效果)
- html5中canvas标签(html5 canvas绘制网络字体的常用方法)
- canvas图片裁剪(使用canvas压缩图片上传的方法示例)
- 使用canvas画个正方形(canvas小画板之平滑曲线的实现)
- canvas指定区域生成图片(canvas实现图片镜像翻转的2种方式)
- html5+canvas动画(解析html5 canvas实现背景鼠标连线动态效果代码)
- 微信小程序canvas 动画(微信小程序使用canvas绘制钟表)
- canvas设置点击(Canvas高级路径操作之拖拽对象的实现)
- html5canvas画图有什么用(Html5基于canvas实现电子签名并生成PDF文档)
- canvas如何保存当前的图片(canvas如何实现多张图片编辑的图片编辑器)
- canvas心形水波(Canvas波浪花环的示例代码)
- canvas如何开启(canvas实现手机的手势解锁的步骤详细)
- htmlcanvas的使用(html2canvas生成清晰的图片实现打印的示例代码)
- canvas绘制流星(使用canvas实现黑客帝国数字雨效果)
- canvas绘制渐变图形(Canvas实现放大镜效果完整案例分析附代码)
- 新一小兰领衔 盘点动漫中的那些 远距离恋爱情侣(盘点动漫中的那些)
- 大事件 合肥四中火了(大事件合肥四中火了)
- 翼龙贷组织出借人调研 感受鄱阳 借 来的致富路(翼龙贷组织出借人调研)
- 2023新国风戏曲教育寒假集训班汇报演出《戏娃闹元宵》图文报道(2023新国风戏曲教育寒假集训班汇报演出戏娃闹元宵图文报道)
- 九儿《狐踪谍影》出演热血女特警,戏份杀青受关注(九儿狐踪谍影出演热血女特警)
- 红色代表什么(红色代表什么寓意)
热门推荐
- 卷积神经网络python实现(Python通过TensorFlow卷积神经网络实现猫狗识别)
- extjs中Toolbar工具栏
- VS中生成与重新生成的区别
- laravel数据库数据代码(在Laravel的Model层做数据缓存的实现)
- mysql性能怎么看(是什么影响了 MySQL 的性能?)
- python怎么做图像识别(Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例)
- extjs中Toolbar工具栏
- dedecms中的有些功能如何修改(织梦DedeCMS默认文件夹重命名的方法)
- ubuntu ssh登录服务器(ubuntu开启SSH服务远程登录操作的实现)
- canvas图片填充位置(手摸手教你用canvas实现给图片添加平铺水印的实现)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9