DDR爱好者之家 Design By 杰米
刚刚开始接触canvas,写个验证码小功能练练手,实现效果图如下:
主要代码如下:
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="index.css" rel="external nofollow" > </head> <body> <div class="wrapper"> <div class="inputBox"> <input type="text" class = 'inputCaptcha' placeholder = "请输入验证码"> <span class="captchaIcon"></span> </div> <p class="errorText"></p> <div class="canvasBox"> <div class="imageBox"> <canvas width =300 height=80 id = 'canvasCaptcha'></canvas> <input type="button" class='refresh'> </div> </div> <button class="captchaSubmit">submit</button> </div> <script src='./jquery.js'></script> <script src = './index.js'></script> </body> </html>
css
* { margin: 0; padding: 0; } .wrapper { width: 345px; border: 1px solid #ccc; border-radius: 10px; padding: 20px 10px; margin: 30px 30px; } .inputBox { width: 345px; margin: 0 auto 10px; position: relative; } .inputBox .inputCaptcha { display: inline-block; height: 50px; width: 86%; text-indent: 1em; border: 1px solid #ddd; border-radius: 5px; } .inputBox .captchaIcon { display: none; position: absolute; top: 50%; right: 0px; margin-top: -16px; width: 32px; height: 32px; background-size: 100% 100%; } .errorText { width: 345px; margin: 0 auto; font-size: 12px; color: red; display: none; } .canvasBox { width: 345px; margin: 10px auto; position: relative; } #canvasCaptcha { border-radius: 10px; } .canvasBox .refresh { width: 34px; height: 34px; position: absolute; right: 0px; top: 50%; margin-top: -17px; border: 0; border-radius: 6px; background-image: url('./images/update.png'); background-size: cover; } .captchaSubmit { padding: 10px 20px; background-color: #62b900; border: 0; font-size: 20px; border-radius: 5px; color: #fff; }
js
var arr = [0,1,2,3,4,5,6,7,8,9]; for(var i = 65;i < 122;i++){ if(i>90&&i<97){ continue; } arr.push(String.fromCharCode(i)); } //每个验证码可能出现的字母或数字(区分大小写) var len = arr.length; //验证码的长度 var canvasStr,value; //验证码值 function createCanvas(){ canvasStr = ''; value = ''; for(var i =0 ;i < 6;i++){ var a = arr[Math.floor(Math.random()*len)]; canvasStr += a+' '; value += a; } //canvas var oCanvas = document.getElementById('canvasCaptcha'); var ctx = oCanvas.getContext('2d'); var w = oCanvas.width; var h = oCanvas.height; var oImg = new Image(); oImg.src = './images/bg.jpg'; oImg.onload = function(){ var pattern = ctx.createPattern(oImg,'repeat'); ctx.fillStyle = pattern; ctx.fillRect(0,0,w,h); ctx.fillStyle = '#ccc'; ctx.textAlign = 'center'; ctx.font = '46px Roboto Slab'; ctx.setTransform(1,-0.12,0.2,1,0,12); ctx.fillText(canvasStr,w/2,60); } } createCanvas(); //验证输入的验证码与图中验证码时候相等 function captcha(e){ if(e == value){ return true; } else{ return false; } } //点击提交按钮时的结果 function showResult(){ var inputValue = $('.inputCaptcha').val(); if(inputValue == '' ||inputValue == null || inputValue == 'undefined'){ $('.errorText').css({display:'inline-block'}).html('验证码不能为空,请重新输入!'); $('.captchaIcon').css({display:'inline-block',backgroundImage:"url('./images/false.png')"}); }else{ var flag = captcha(inputValue); if(!flag){ $('.errorText').css({display:'inline-block'}).html('验证码错误,请重新输入!'); $('.captchaIcon').css({display:'inline-block',backgroundImage:"url('./images/false.png')"}); }else{ $('.captchaIcon').css({display:'inline-block',backgroundImage:"url('./images/true.png')"}); } } } $('.captchaSubmit').click(showResult);//提交 $('.refresh').click(createCanvas);//刷新 //点击input框 $('.inputCaptcha').focus(function(){ $('.errorText').add($('.captchaIcon')).fadeOut(100); })
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]