html+css+js随机验证码

随机画入字符、线条 源代码在图片后面

点赞❤️+关注😍+收藏⭐️ 互粉必回

图示

源代码

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Captcha Verification</title>

<style>

body {

display: flex;

justify-content: center;

align-items: center;

min-height: 100vh;

background-color: #f0f0f0;

margin: 0;

}

.captcha-container {

background-color: white;

border-radius: 10px;

box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);

padding: 20px;

display: flex;

flex-direction: column;

align-items: center;

width: 400px;

}

.captcha-board {

width: 100%;

height: 150px;

background: #eee;

border-radius: 5px;

position: relative;

overflow: hidden;

}

.captcha-input {

width: 100%;

height: 40px;

margin-top: 20px;

padding: 0 10px;

border: 1px solid #ccc;

border-radius: 5px;

}

.captcha-button {

width: 100%;

height: 40px;

background-color: orange;

color: white;

border: none;

border-radius: 5px;

box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);

cursor: pointer;

margin-top: 20px;

}

</style>

</head>

<body>

<div class="captcha-container">

<div class="captcha-board" id="captchaBoard"></div>

<input type="text" class="captcha-input" placeholder="Enter the captcha" id="captchaInput">

<button class="captcha-button" οnclick="verifyCaptcha()">Verify</button>

</div>

<script>

function generateCaptcha() {

let chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

let captchaText = '';

for (let i = 0; i < 4; i++) {

captchaText += chars[Math.floor(Math.random() * chars.length)];

}

document.getElementById('captchaBoard').innerHTML = `<h1 style="font-size: 60px;">${captchaText}</h1>`;

drawRandomLines();

return captchaText;

}

function drawRandomLines() {

let board = document.getElementById('captchaBoard');

let svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");

svg.setAttribute("width", "100%");

svg.setAttribute("height", "100%");

svg.style.position = "absolute";

svg.style.top = "0";

svg.style.left = "0";

for (let i = 0; i < 10; i++) {

let line = document.createElementNS("http://www.w3.org/2000/svg", "line");

let color = `rgb({Math.floor(Math.random() \* 256)}, {Math.floor(Math.random() * 256)}, ${Math.floor(Math.random() * 256)})`;

line.setAttribute("x1", Math.random() * 100 + "%");

line.setAttribute("y1", Math.random() * 100 + "%");

line.setAttribute("x2", Math.random() * 100 + "%");

line.setAttribute("y2", Math.random() * 100 + "%");

line.setAttribute("stroke", color);

line.setAttribute("stroke-width", 1);

svg.appendChild(line);

}

board.appendChild(svg);

}

let captcha = generateCaptcha();

function verifyCaptcha() {

let input = document.getElementById('captchaInput').value;

if (input === captcha) {

alert('Verification Passed!');

} else {

alert('Incorrect Captcha!');

}

}

</script>

</body>

</html>

相关推荐
小码哥_常3 分钟前
从SharedPreferences到DataStore:Android存储进化之路
前端
老黑11 分钟前
开源工具 AIDA:给 AI 辅助开发加一个数据采集层,让 AI 从错误中自动学习(Glama 3A 认证)
前端·react.js·ai·nodejs·cursor·vibe coding·claude code
薛先生_09917 分钟前
js学习语法第一天
开发语言·javascript·学习
jessecyj26 分钟前
Spring boot整合quartz方法
java·前端·spring boot
苦瓜小生39 分钟前
【前端】|【js手撕】经典高频面试题:手写实现function.call、apply、bind
java·前端·javascript
天若有情6731 小时前
前端HTML精讲03:页面性能优化+懒加载,搞定首屏加速
前端·性能优化·html
踩着两条虫1 小时前
AI驱动的Vue3应用开发平台深入探究(十):物料系统之内置组件库
android·前端·vue.js·人工智能·低代码·系统架构·rxjava
和沐阳学逆向1 小时前
我现在怎么用 CC Switch 管中转站,顺手拿 Codex 举个例子
开发语言·javascript·ecmascript
swipe1 小时前
AI 应用里的 Memory,不是“保存聊天记录”,而是管理上下文预算
前端·llm·agent
慧一居士2 小时前
nuxt3 项目和nuxt4 项目区别和对比
前端·vue.js