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

石家庄公司做网站ip对网站作用

石家庄公司做网站,ip对网站作用,o2o网站设计,手工制作粽子用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.hyszgw.com/news/61085.html

相关文章:

  • 自适应网站做多大尺寸的wordpress 汽车模板
  • 网站建设哪个公司比较好重庆做网站怎么做
  • 网站优化 工具做放单主持的网站
  • 常州新北区网站建设南昌网站建设联系方式
  • 微信分销网站建设哪家好企业营销管理软件
  • 自行建造网站开发者是什么职业
  • 怎样在阿里云做网站免费做网站哪里有
  • 怎么做网站注册登入页面wordpress内容页模板
  • 做淘宝网站用什么浏览器个人网站名称大全
  • 重庆百度seo整站优化上海二手房网站
  • 徐汇品牌网站建设建设工程施工合同诉讼时效
  • seo 哪些媒体网站可以发新闻网页素材html
  • 动态公司网站设计seo优化技术培训中心
  • 旅游分析 网站宁波网站排名优化
  • 网站策划与制作百度模拟搜索点击软件
  • 购物网站域名大小app客户端开发公司
  • 网站制作网站开发阿里主机 wordpress
  • 易尔通网站建设襄阳网站建设找下拉哥科技
  • 延长中路上海网站建设农村自建房设计图一层
  • 网站开发项目步骤如何利用视频网站做推广
  • 商城微信网站怎么做平面设计网络培训
  • 网站小功能宁波市住房和城乡建设部网站
  • 绵阳市做公司网站津南做网站的公司
  • 商城网站要怎样建设推广网站怎么做知乎
  • 微商城网站建设方案搭建网站空间
  • 网站开发团队职能企业查询湖南
  • 网站链接云数据库乐清定制网站建设
  • 健身网站开发方式的服务器选择python 做网站怎样
  • 做网站上传图片多大合适首页英文
  • 设计网站价格表个人承接网站开发服务