日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Vue實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能

瀏覽:29日期:2022-10-15 08:55:07

本文實(shí)例為大家分享了Vue實(shí)現(xiàn)隨機(jī)驗(yàn)證碼功能的具體代碼,供大家參考,具體內(nèi)容如下

步驟1:創(chuàng)建一個(gè)名為identify.vue的子組件

<template> <div class='s-canvas'> <canvas : :height='contentHeight'></canvas> </div></template><script>export default { name: ’SIdentify’, props: { // 默認(rèn)注冊(cè)碼identifyCode: { type: String, default: '1234'},// 字體最小值fontSizeMin: { type: Number, default: 35},// 字體最大值fontSizeMax: { type: Number, default: 35},// 背景顏色色值最小值backgroundColorMin: { type: Number, default: 180},// 背景顏色色值最大值backgroundColorMax: { type: Number, default: 240},// 字體顏色色值最小值colorMin: { type: Number, default: 50},// 字體顏色色值最大值colorMax: { type: Number, default: 160},// 干擾線(xiàn)顏色色值最小值lineColorMin: { type: Number, default: 100},// 干擾線(xiàn)顏色色值最大值lineColorMax: { type: Number, default: 200},// 干擾點(diǎn)顏色色值最小值dotColorMin: { type: Number, default: 0},// 干擾點(diǎn)顏色色值最大值dotColorMax: { type: Number, default: 255},// 畫(huà)布寬度contentWidth: { type: Number, default: 120},// 畫(huà)布高度contentHeight: { type: Number, default: 40} }, methods: { // 生成一個(gè)隨機(jī)數(shù) randomNum(min, max) { return Math.floor(Math.random() * (max - min) + min) }, // 生成一個(gè)隨機(jī)的顏色 randomColor(min, max) { let r = this.randomNum(min, max) let g = this.randomNum(min, max) let b = this.randomNum(min, max) return ’rgb(’ + r + ’,’ + g + ’,’ + b + ’)’ }, drawPic() { let canvas = document.getElementById(’s-canvas’) let ctx = canvas.getContext(’2d’) ctx.textBaseline = ’bottom’ // 繪制背景 ctx.fillStyle = this.randomColor(this.backgroundColorMin, this.backgroundColorMax) ctx.fillRect(0, 0, this.contentWidth, this.contentHeight) // 繪制文字 for (let i = 0; i < this.identifyCode.length; i++) { this.drawText(ctx, this.identifyCode[i], i) } this.drawLine(ctx) this.drawDot(ctx) }, drawText(ctx, txt, i) { // 隨機(jī)生產(chǎn)字體顏色 ctx.fillStyle = this.randomColor(this.colorMin, this.colorMax) // 隨機(jī)生成字體大小 ctx.font = this.randomNum(this.fontSizeMin, this.fontSizeMax) + ’px SimHei’ let x = (i + 1) * (this.contentWidth / (this.identifyCode.length + 1)) let y = this.randomNum(this.fontSizeMax, this.contentHeight - 5) var deg = this.randomNum(-45, 45) // 修改坐標(biāo)原點(diǎn)和旋轉(zhuǎn)角度 ctx.translate(x, y) ctx.rotate(deg * Math.PI / 180) ctx.fillText(txt, 0, 0) // 恢復(fù)坐標(biāo)原點(diǎn)和旋轉(zhuǎn)角度 ctx.rotate(-deg * Math.PI / 180) ctx.translate(-x, -y) }, drawLine(ctx) { // 繪制干擾線(xiàn) for (let i = 0; i < 5; i++) { ctx.strokeStyle = this.randomColor(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() } }, drawDot(ctx) { // 繪制干擾點(diǎn) for (let i = 0; i < 80; i++) { ctx.fillStyle = this.randomColor(0, 255) ctx.beginPath() ctx.arc(this.randomNum(0, this.contentWidth), this.randomNum(0, this.contentHeight), 1, 0, 2 * Math.PI) ctx.fill() } } }, watch: { identifyCode() { this.drawPic() } }, mounted() { this.drawPic() }}</script>

步驟2 在子組件中進(jìn)行注冊(cè)和引用

<script> import SIdentify from './common/sIdentify.vue'; export default { components: { SIdentify }, }</script>

步驟3 在主頁(yè)面中使用子組件

1、template中:

<template> <div @click='refreshCode'> <s-identify :identifyCode='identifyCode'></s-identify> </div></template>

2、 data中:

data() { return { identifyCode: '', identifyCodes: '', }},

3、methods中:

methods: { // 生成隨機(jī)數(shù) randomNum(min, max) { max = max + 1 return Math.floor(Math.random() * (max - min) + min); }, // 更新驗(yàn)證碼 refreshCode() { this.identifyCode = ''; this.makeCode(this.identifyCodes, 4); console.log(’當(dāng)前驗(yàn)證碼==’,this.identifyCode); }, // 隨機(jī)生成驗(yàn)證碼字符串 makeCode(data, len) { for (let i = 0; i < len; i++) { this.identifyCode += this.identifyCodes[this.randomNum(0, this.identifyCodes)] } },}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费观看亚洲天堂| 成人片免费看| 美女精品一区| 国产精品外国| 欧美日韩国产传媒| 丝袜美腿亚洲一区| 日韩极品在线观看| 久久久久伊人| 亚洲国产影院| 日本中文字幕不卡| 麻豆精品视频在线观看| 女生影院久久| 亚洲免费激情| 日本午夜免费一区二区| 高清精品久久| 亚洲激精日韩激精欧美精品| 日韩高清电影一区| av中文资源在线资源免费观看| 欧美一区二区性| 蜜桃av一区| 久久av网址| 欧美日韩激情| 国产精品一区2区3区| 91看片一区| 日韩一区二区三区在线看| 成人国产精品| 最新国产精品久久久| 日韩a一区二区| 久热综合在线亚洲精品| 麻豆国产欧美一区二区三区| 一区在线观看| 精品一区二区三区视频在线播放 | 日韩综合小视频| 国产一区二区三区免费在线| 久久成人一区| 欧美亚洲日本精品| 亚洲精品国产精品粉嫩| 国产a亚洲精品| 国产毛片一区| 国产夫妻在线| 欧美自拍一区| 亚洲深夜影院| 国内自拍视频一区二区三区| 中文一区一区三区免费在线观 | 亚洲播播91| 日韩成人精品一区二区三区| 久久uomeier| 日韩欧美四区| 国产中文一区| 久久精品国产网站| 最新亚洲国产| 五月天激情综合网| av日韩中文| 国产日韩亚洲| 在线精品一区| 欧美日韩一二| 精品国产一区二区三区av片| 蜜桃视频在线观看一区二区| 群体交乱之放荡娇妻一区二区| 国产精品激情电影| 婷婷五月色综合香五月| 99视频一区| 成人片免费看| 欧美aa在线视频| 日韩精品高清不卡| 黄色精品网站| 久久精品国产www456c0m| 精品久久久网| 国产精品tv| 久久精品72免费观看| 亚洲日产av中文字幕| 国产毛片久久| 亚洲激情精品| 午夜国产一区二区| 亚洲午夜久久久久久尤物| 人人草在线视频| 麻豆精品视频在线| 国产精品网在线观看| 中文字幕一区二区三区在线视频| 日韩亚洲国产欧美| 亚洲精品电影| 黑丝美女一区二区| 黄色欧美日韩| 99视频在线精品国自产拍免费观看| 99久久www免费| 久久男女视频| 久久精品电影| 999精品一区| 国产一区日韩一区| 亚洲深夜av| 先锋亚洲精品| 性欧美69xoxoxoxo| 欧美 日韩 国产一区二区在线视频 | 国产精品欧美大片| 日韩高清不卡一区| 日本少妇精品亚洲第一区| 日韩av资源网| 麻豆精品在线观看| 日产精品一区| 日韩中文在线电影| 国产精品二区不卡| 成午夜精品一区二区三区软件| 欧美xxxx性| 欧美成人a交片免费看| 欧美成人基地| 日韩天堂av| 久久亚洲影院| 欧美偷窥清纯综合图区| 国产精品久久| 中文字幕人成乱码在线观看| 91精品蜜臀一区二区三区在线 | 久久国产日韩欧美精品| 亚洲性视频在线| 日韩中文字幕| 国产精品久久久久av蜜臀 | 欧美精品国产一区| 美日韩一区二区三区| 精品一区电影| 日韩精品欧美激情一区二区| 午夜久久久久| 日本欧美在线| 色一区二区三区四区| 欧美aa国产视频| 亚洲三级毛片| 久久精品一区二区国产| 电影天堂国产精品| 亚洲日本欧美| 精品三级在线观看视频| 久久国产影院| 日产欧产美韩系列久久99| 久久影院资源站| 亚洲成人精品| 日本精品另类| 麻豆mv在线观看| 丝袜亚洲另类欧美| 久久成人av| 91久久亚洲| 久久97视频| 先锋亚洲精品| 国产美女高潮在线观看| 欧美精品自拍| 美女毛片一区二区三区四区最新中文字幕亚洲| 日韩久久视频| 日韩国产欧美三级| 蜜桃精品在线| 日韩精品一级| 亚洲福利精品| 国产精品久久久久久久久久妞妞| 在线 亚洲欧美在线综合一区| 欧美黑人做爰爽爽爽| 日韩午夜av| 国产成人免费| 亚洲精品乱码日韩| 中文字幕系列一区| 国产精品网址| 亚洲精品小说| 久久亚洲黄色| 亚洲色图网站| 久久国产精品成人免费观看的软件| 欧美日韩精品一区二区三区视频 | 国产日本亚洲| 不卡中文一二三区| 超级白嫩亚洲国产第一| 日韩中文字幕一区二区高清99| 久久精品青草| 久久国产人妖系列| 亚洲欧洲一区二区天堂久久| 精品欧美日韩精品| 日本成人中文字幕| 国产精品日本| 国产99精品| 岛国av在线播放| 久久gogo国模啪啪裸体| 日韩精品欧美成人高清一区二区| 亚洲免费播放| 国产91久久精品一区二区| av资源新版天堂在线| 国产精品theporn| 91精品福利观看| 亚洲精品精选| 91久久黄色| 欧美a级片一区| 亚洲成人不卡| 岛国av在线播放| 福利精品一区| 精品久久久中文字幕| 欧美黑人做爰爽爽爽| 国产乱码精品| 青青国产91久久久久久| 综合五月婷婷| 中文在线日韩| 日韩中文字幕| 婷婷精品在线| 亚洲久久在线| 综合日韩在线| 伊人久久一区| 亚洲欧美一级| 911亚洲精品| 欧美日本久久| 国产精品黄色片|