圖形驗證碼驗證行式的筆記

背景

最近在做關于驗證碼項目的時候尖飞,從交互的角度梳理了驗證碼的驗證行式,今天總結一下驗證碼在產(chǎn)品中出現(xiàn)的驗證行式店雅。

驗證行式

圖形驗證碼通過用戶的操作來完成驗證政基,常見的驗證行式有嵌入式、觸發(fā)式闹啦、彈窗式沮明。

嵌入式

驗證碼直接完整嵌入網(wǎng)頁,清晰直觀窍奋,便于用戶使用和廣告宣傳荐健。

下面是前端調(diào)用代碼:

<script src="https://cdn8.kgcaptcha.com/captcha.js?appid=94dATYQa"></script>
<script>
kg.captcha({
    // 綁定元素,驗證框顯示區(qū)域
    bind: "#captchaBox",
    // 驗證成功事務處理
    success: function(e) {
        console.log(e);
    },
    // 驗證失敗事務處理
    failure: function(e) {
        console.log(e);
    },
    // 點擊刷新按鈕時觸發(fā)
    refresh: function(e) {
        console.log(e);
    }
});
</script>
<div id="captchaBox">載入中 ...</div>


觸發(fā)式

默認只顯示滑動條琳袄,鼠標懸徒。互動顯示驗證圖片,廣泛用于任何場景窖逗,不影響網(wǎng)站的排版和美觀址否。

鼠標懸停顯示驗證碼:

/* 觸發(fā)式 */
if(kgConfig["type"] === 2){
    /* 點擊區(qū)域外隱藏伸縮框 */
    document.addEventListener("mousedown", function(e){
        var str = e.target.childNodes;
        if(e.target.id){
            outside = e.target.id !== "KgBasemap";
        } else {
            var outside = true;  /* 是否為外部點擊 */
            for (var i = 0; i < str.length; i++) {
                if (str[i].id === "KgBasemap") {
                    outside = false;
                }
            }
            if (str.length === 0){
                outside = false;
            }
        }
        if (outside) {
            /* 隱藏拼圖區(qū)域 */
            kg.show(kg.$(param["bind"] + " #KgBasemap"), 0);
        }
    });
}

/* 觸發(fā)式(向上/下)顯示拼圖區(qū)域 */
if(kgConfig["type"] === 2){
    if (param["float"] === "down"){
        kg.$(param["bind"] + " #KgBasemap").className = "KgBasemapDown";
    }
    kg.show(kg.$(param["bind"] + " #KgBasemap"), 1);
}


彈窗式

默認不顯示驗證碼,點擊提交碎紊、確定佑附、發(fā)送等觸發(fā)驗證樊诺。體驗相對來說會更加友好,適用場景也更廣泛音同。

創(chuàng)建彈窗并顯示/隱藏:

/* 彈出式拼圖 */
if(kgConfig["type"] === 3){
    var popupButton = kg.default(param["button"], "#captchaButton");  /* 彈出式按鈕 id */
    param["bind"] = kg.popupAddId;  /* 創(chuàng)建新彈窗 ID */

    /* 刷新時词爬,刪除上次創(chuàng)建的彈出窗口DIV,重新創(chuàng)建 */
    if(kg.$(param["bind"])){kg.$(param["bind"]).parentNode.removeChild(kg.$(param["bind"]));}

    /* 在Button前創(chuàng)建一個DIV并輸出彈窗模板 */
    var add_div = document.createElement("div");
    add_div.id = kg.popupAddId.substring(1);  /* 去除 # */
    add_div.innerHTML = kgConfig["styleTpl"];
    /* 創(chuàng)建彈窗 */
    /* 1权均、body 開始創(chuàng)建 */
    kg.$("body").insertBefore(add_div, kg.$("body").childNodes[0]);
    /* 2缸夹、當前按鈕前創(chuàng)建
    kg.$(popupButton).parentNode.insertBefore(add_div, kg.$(popupButton)); */

    /* 彈出事件綁定 */
    kg.$(popupButton).onclick = function(e){
        popup(1);
    }
    /* 關閉按鈕事件綁定 */
    kg.$(param["bind"] + " #KgPuzzleTitle ol:nth-child(2) img").onclick = function(e){
        popup(0);
    }
    kg.$(param["bind"] + " #KgPuzzleBody").onclick = function(e){
        popup(0);
    }
}

/* 設置元素為顯示/隱藏狀態(tài),獲取元素顯示/隱藏狀態(tài) */
/* target: 需要設置/獲取的元素對象螺句,kg.$("#div"); */
/* state: [0|1] 0 設置為隱藏狀態(tài)虽惭、1 設置為顯示狀態(tài)、忽略該參數(shù)為獲取display狀態(tài) */
show: function (target, state) {
    if (state === undefined) {
        return target.style.display;
    } else {
        if (state === 0) {
            target.style.display = "none";
        } else {
            target.style.display = "block";
        }
    }
}


總結

以上就是文章的全部內(nèi)容蛇尚,下面附上示例代碼一份:https://github.com/KgCaptcha芽唇,和示例體驗地址:https://www.kgcaptcha.com/demo/,2023年在這新的一年里取劫,加油吧匆笤!

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谱邪,隨后出現(xiàn)的幾起案子炮捧,更是在濱河造成了極大的恐慌,老刑警劉巖惦银,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咆课,死亡現(xiàn)場離奇詭異,居然都是意外死亡扯俱,警方通過查閱死者的電腦和手機书蚪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迅栅,“玉大人殊校,你說我怎么就攤上這事《链妫” “怎么了为流?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長让簿。 經(jīng)常有香客問我敬察,道長,這世上最難降的妖魔是什么拜英? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任静汤,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘虫给。我一直安慰自己藤抡,他們只是感情好,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布抹估。 她就那樣靜靜地躺著缠黍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪药蜻。 梳的紋絲不亂的頭發(fā)上瓷式,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機與錄音语泽,去河邊找鬼贸典。 笑死,一個胖子當著我的面吹牛踱卵,可吹牛的內(nèi)容都是我干的廊驼。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼惋砂,長吁一口氣:“原來是場噩夢啊……” “哼妒挎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起西饵,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤酝掩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后眷柔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體期虾,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年闯割,在試婚紗的時候發(fā)現(xiàn)自己被綠了彻消。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡宙拉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丙笋,到底是詐尸還是另有隱情谢澈,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布御板,位于F島的核電站锥忿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏怠肋。R本人自食惡果不足惜敬鬓,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧钉答,春花似錦础芍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至右蹦,卻和暖如春诊杆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背何陆。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工晨汹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贷盲。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓宰缤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親晃洒。 傳聞我的和親對象是個殘疾皇子慨灭,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 01 前言 圖形驗證碼是一種很常見的行為驗證碼,其中滑動拼圖球及,用戶只需要輕輕滑動滑塊填充拼圖氧骤,即可完成安全驗證。通...
    宙哈哈閱讀 152評論 0 0
  • 前言 在一次項目開發(fā)中吃引,需要對滑動拼圖驗證碼的寬高筹陵、拼圖缺口、滑塊等樣式進行自定義設置镊尺,于是我找啊找朦佩,終于讓我找到...
    norhone閱讀 245評論 0 0
  • 滑動拼圖驗證碼素材管理 在一次項目中,為了使驗證碼更加貼合自身風格庐氮。我找到了一款驗證碼產(chǎn)品可以通過設置圖片素材语稠,來...
    norhone閱讀 166評論 0 0
  • 前言 最近在開發(fā)行為驗證碼,經(jīng)常觸及到關于驗證類型的相關內(nèi)容弄砍。但使用起來不太熟練仙畦,閑暇之余,總結一下我對行為驗證碼...
    人生如夢2閱讀 267評論 0 0
  • 01 前言 滑動驗證碼的常見樣式有很多種音婶,下面我就使用KgCaptcha來就給大家舉例說說慨畸! 02 嵌入式 這種樣...
    宙哈哈閱讀 159評論 0 0