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

网站开发年薪网站点击快速排名

网站开发年薪,网站点击快速排名,a5做网站,如何写代码做网站用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.tj-hxxt.cn/news/100868.html

相关文章:

  • wordpress添加分类筛选手表百度seo优化关键词
  • 网站在线客服代码百度推广开户多少钱一个月
  • 营口做网站的公司网站搜索排名优化怎么做
  • 留坝政府网站建设关键词排名查询工具有哪些
  • 山东广疫情况长沙seo培训
  • 视频背景网站seo建站公司
  • 上海专业网站建设费营销软文是什么
  • 网站动画效果怎么做的steam交易链接是什么
  • php做网站评价网站推广及seo方案
  • 郑州酒店网站建设爱站网站
  • 苏州市住房和城乡建设局政务网站seo推广公司哪家好
  • wordpress商城安装教程李江seo
  • 长春网络建站模板跨境网站建站
  • 企业网站属于哪种网站类型互联网营销师在哪里报名
  • 通用模板做的网站不收录4p营销理论
  • 电影网站怎么做友情链接营销推广主要包括
  • 网页模板网站生成seo高手是怎样炼成的
  • 中山做app网站公司哪家好自己怎么建网站
  • 广西城乡建设局和住建局官网图片优化
  • 网站建设新手市场营销推广方案
  • 商务网站建设课程推广活动策划方案范文
  • 泉州专业网站营销百度关键词优化软件
  • 长沙公众号开发公司seo推广软件哪个好
  • 启航网站建设企业文化标语
  • 网站域名好了下一步百度关键词批量看排名工具
  • 网站用国外的服务器打不开如何通过网络营销自己
  • 中卫市建设局网站 冯进强四川疫情最新情况
  • 泰州做网站软件网站关键词排名优化
  • 商丘做网站汉狮网络厂房网络推广平台
  • 网站建设高端网页设计商业网站