国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > HTML5 > 正文

canvas基礎之圖形驗證碼的示例

2024-09-05 07:19:29
字體:
來源:轉載
供稿:網友

在通常的登錄界面我們都可以看到驗證碼,驗證碼的作用是檢測是不是人在操作,防止機器等非人操作,防止數據庫被輕而易舉的攻破。

驗證碼一般用PHP和java等后端語言編寫;

但是在前端,用canva或者SVG也可以繪制驗證碼;

直接上干貨:

<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title></title>        <style type="text/css">            canvas {                border: 1px solid red;            }        </style>    </head>    <body>        <canvas id="myCanvas" width="100" height="40">            您的瀏覽器不支持canvas        </canvas>    </body>    <script type="text/javascript">        var myCanvas = document.getElementById("myCanvas");        var context = myCanvas.getContext("2d");        //隨機字符(透明度)(大小隨機,位置隨機);        var strStore = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";        //隨機函數        function roundNum(min, max) {            return parseInt(Math.random() * (max - min) + min);        }        //文字內容部分:        var str = "";        for(var i = 0; i < 5; i++) {            context.beginPath();            //隨機顏色(淺色:RGB - 200~250)            var color = `rgb(${roundNum(0,255)},${roundNum(0,255)},${roundNum(0,255)})`;            context.fillStyle = color;            context.font = roundNum(20,30)+"px Arial";            context.textAlign = "center";            str = strStore[roundNum(0,strStore.length)];            context.fillText(str, 10 + 18 * i, roundNum(20,35));        }        //10個左右的隨機(長度隨機,位置隨機),干擾線        for(var j = 0; j < roundNum(5, 10); j++) {            context.beginPath();            var color = `rgb(${roundNum(0,255)},${roundNum(0,255)},${roundNum(0,255)})`;            context.strokeStyle = color;            context.moveTo(roundNum(0, 100), roundNum(0, 40));            context.lineTo(roundNum(0, 100), roundNum(0, 40));            context.stroke();        }        //干擾項:10個左右的隨機(半徑隨機,位置隨機),干擾圓        for(var j = 0; j < roundNum(5, 10); j++) {            context.beginPath();            context.fillStyle = color;            context.arc(roundNum(0, 100), roundNum(0, 40), roundNum(0, 5), Math.PI * 2 / (roundNum(1, 360)), Math.PI * 2 / (roundNum(1, 360)));            context.fill();        }            </script></html>

結果如圖:

至于要拿來咋用,就看大家高興了。想怎么整這么整。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岑巩县| 二连浩特市| 伊春市| 高雄县| 杭州市| 青川县| 天等县| 芦山县| 洞头县| 梅州市| 秦安县| 乌什县| 夏邑县| 蕉岭县| 桦川县| 威宁| 大荔县| 贡嘎县| 建阳市| 辽阳市| SHOW| 宣汉县| 五常市| 六盘水市| 宜城市| 精河县| 新巴尔虎左旗| 林周县| 广西| 东辽县| 资溪县| 周至县| 泾源县| 承德市| 富蕴县| 土默特左旗| 栾城县| 阜阳市| 美姑县| 甘泉县| 永兴县|