当前位置: 首页 > news >正文

网站开发年薪第三方网站流量统计

网站开发年薪,第三方网站流量统计,建设官网公司,大连哪家网站建设好用canvas手写一个数字、字母混合的行为验证码 实现效果源码 实现效果 源码 import Taro from "tarojs/taro"; import { View, Canvas, Input, Button } from "tarojs/components"; import { useState, useEffect } from "react"; // 画随机线函…

用canvas手写一个数字、字母混合的行为验证码

  • 实现效果
  • 源码

实现效果

在这里插入图片描述

源码

import Taro from "@tarojs/taro";
import { View, Canvas, Input, Button } from "@tarojs/components";
import { useState, useEffect } from "react";
// 画随机线函数
function drawline(canvas, context) {// 随机线的起点x坐标是画布x坐标0位置,y坐标是画布高度的随机数context.moveTo(Math.floor(Math.random() * canvas.width),Math.floor(Math.random() * canvas.height));// 随机线的终点x坐标是画布宽度,y坐标是画布高度的随机数context.lineTo(Math.floor(Math.random() * canvas.width),Math.floor(Math.random() * canvas.height));// 线条的款context.lineWidth = 0.5;// 线条的描边属性:颜色透明度context.strokeStyle = "rgba(50,50,50,0.3)";// 在画布上画线context.stroke();
}// 画随机点函数
function drawDot(canvas, context) {let px = Math.floor(Math.random() * canvas.width),py = Math.floor(Math.random() * canvas.height);context.moveTo(px, py);context.lineTo(px + 1, py + 1);context.lineWidth = 0.1;context.stroke();
}const Captcha = () => {const [text, setText] = useState("");const [value, setValue] = useState("");useEffect(() => {drawCaptcha();}, []);const drawCaptcha = () => {const nums = ["1","2","3","4","5","6","7","8","9","0","A","B","C","D","E","F","G","H","I","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","p","q","r","s","t","u","v","w","x","y","z",];// 创建 canvas 画布,并设置宽高const context = Taro.createCanvasContext("myCanvas");// canvas.width = 98;// canvas.height = 45;const canvas = {width: 98,height: 45,};// 画布填充色context.setFillStyle("#00BEFD");// 清空画布context.fillRect(0, 0, canvas.width, canvas.height);// 设置字体颜色context.fillStyle = "white";// 设置字体context.font = "25px Microsoft YaHei";const rand = [],x = [],y = [];// 绘制校验码到画布上for (let i = 0; i < 4; i++) {rand.push(rand[i]);rand[i] = nums[Math.floor(Math.random() * nums.length)];x[i] = i * 20 + 10;y[i] = Math.random() * 20 + 20;context.fillText(rand[i], x[i], y[i]);}// 画2条随机线,可以根据需要增减,画随机线主要是为了提高识别难度,防范机器识别for (let i = 0; i < 2; i++) {drawline(canvas, context);}// 画20个随机点,随机点的意义同随即线for (let i = 0; i < 20; i++) {drawDot(canvas, context);}context.draw();const currentText = rand.join("").toUpperCase();setText(currentText);console.log("res", currentText);};const validateCode = () => {if (value.toUpperCase() === text) {console.log("正确");} else {console.log("错误");}};return (<View><Canvasid="myCanvas"canvasId="myCanvas"style="width: 100px; height: 50px;"/><span onClick={drawCaptcha}>看不清换一张</span><InputcursorSpacing={100}onInput={(e) => setValue(e.target.value)}placeholder="输入验证码"value={value}/><Button onClick={validateCode}>验证</Button></View>);
};export default Captcha;
http://www.15wanjia.com/news/47223.html

相关文章:

  • 汉中网站建设自媒体推广
  • 网站外链 快速建设开封seo推广
  • 爱做电影网站服装品牌策划方案
  • 做个公司网站需要什么钱以品牌推广为目的的广告网络平台
  • asp网站开发教程怎么做线上销售
  • 网站建设答案全国防疫大数据平台
  • 想制作一个网站怎么来做sem是什么的英文缩写
  • 网站开发公司会在最后面加上公司西安百度推广网站建设
  • wordpress 程序优化网站排名优化培训哪家好
  • 中国城乡住房建设厅网站5118网站如何使用免费版
  • 安平县哪家做网站百度云官方网站
  • 网站开发的目的意义特色创新seo自然优化排名技巧
  • 网站建设应遵守的原则百度推广要自己建站吗
  • 北京建设建网站免费检测网站seo
  • 高端手机网站建设论坛发帖
  • 安阳网站建设哪家专业抖音seo招商
  • 冀州做网站的公司百度首页排名优化服务
  • wordpress怎么让文章页新窗口打开什么软件可以优化关键词
  • 生肖竞猜网站建设专业网站优化培训
  • 什么网站可以做装修效果图semir
  • 南阳百度网站推广seo标题优化
  • 住房城乡建设委房管局官方网站如何推广一个新的app
  • 重庆百度网络推广seo快速排名服务
  • 闸北做网站公司网络营销推广工作内容
  • 做彩票网站制作长沙网络推广营销
  • 揭阳公众号开发seo工具软件
  • 简洁大气企业网站源码整合营销的概念
  • 好的网站设计题目seo网站外链平台
  • 可以做哪些网站有哪些内容小程序制作费用一览表
  • 深圳直销制度网站制作网红营销