JS模仿手機端九宮格登入功能實現代碼,js九宮

來源:互聯網
上載者:User

JS模仿手機端九宮格登入功能實現代碼,js九宮

最近沒有項目做,閑來無事寫了一個小demo,特此分享到幫客之家平台,供大家參考下,本文寫的不好還請各位大俠見諒!

 功能及方法邏輯都注釋在代碼中。所以麻煩大家直接看代碼。

 效果如下:

 話不多說直接上代碼:

 js部分:

 首先我們先畫出兩個九宮格,一個用於登入和首次設定滑動密碼使用,另個用於再次設定滑動密碼,用於與第一次輸入的滑動密碼進行對比,判斷兩次密碼是否一致

 第一個九宮格

$("#gesturepwd").GesturePasswd({backgroundColor: "#252736", //背景色color: "#FFFFFF", //主要的控制項顏色roundRadii: 25, //大圓點的半徑pointRadii: 6, //大圓點被選中時顯示的圓心的半徑space: 30, //大圓點之間的間隙width: 240, //整個組件的寬度height: 240, //整個組件的高度lineColor: "#00aec7", //使用者划出線條的顏色zindex: 100 //整個組件的css z-index屬性}); 

在用同樣的方式畫出第二個九宮格

///載入第二個function getur() {$("#gesturepsa").GesturePasswd({backgroundColor: "#252736", //背景色color: "#FFFFFF", //主要的控制項顏色roundRadii: 25, //大圓點的半徑pointRadii: 6, //大圓點被選中時顯示的圓心的半徑space: 30, //大圓點之間的間隙width: 240, //整個組件的寬度height: 240, //整個組件的高度lineColor: "#00aec7", //使用者划出線條的顏色zindex: 100 //整個組件的css z-index屬性});} 

html部分:

<div><center><br><br><div id="gesturepwd"></div> <div id="gesturepsa" style="display:none"></div></center></div> 

使用者登入時通過商務邏輯層查詢資料庫,看客戶是否設定九宮格密碼,如果設定則調用add()方法,未設定則調用upup()方法。

<script>$(function () {var urlinfo = window.location.href;var UserName = urlinfo.split("_")[1]; $.ajax({type: "POST",url: "../../Home/Details",dataType: 'json',anyc: false,data: { UserName: UserName },success: function (data) {if (data.msg == "True") {$("#pass").text(data.pass);alert("請輸入手勢密碼!")add();}else {alert("請設定手勢密碼!")upup();}}})})</script> 

當使用者已經設定過時我們進行如下操作(調用add()方法):

///設定過手勢密碼的使用者function add() {$("#gesturepwd").on("hasPasswd", function (e, passwd) {var result;if (passwd == $("#pass").text()) {result = true;}else {result = false;}if (result == true) {$("#gesturepwd").trigger("passwdRight");setTimeout(function () {//密碼驗證正確後的其他動作,開啟新的頁面等。。。//alert("密碼正確!")$("#gesturepwd").hide();$("#Indexs").show();;}, 500); //延遲半秒以照顧視覺效果}else {$("#gesturepwd").trigger("passwdWrong");//密碼驗證錯誤後的其他動作。。。}});} 

這裡我們可以擷取客戶在九宮格滑動的密碼,將之取出來(即 passwd),我們將之與隱藏元素pass中的密碼對比,如果一樣這進入下一步,即登入成功。因為是dome所有密碼我直接放在頁面的元素中,在實際開發中不建議這樣,最好在後台進行對比,如果要這樣請加密之後操作。如果使用者為第一次設定的話,我們調用upup方法

///沒有設定過手勢密碼使用者function upup() {///第一次設定$("#gesturepwd").on("hasPasswd", function (e, passwd) {$("#pass").text(passwd)alert("請再次輸入!");getur();$("#gesturepwd").hide();$("#gesturepsa").show();});///第二次設定Recursive();}

這裡我們擷取到使用者第一次滑動設定的密碼將之賦給pass元素中。

然後調用Recursive方法

///遞迴(迴圈調用自己)function Recursive() {$("#gesturepsa").on("hasPasswd", function (e, passwd) {var urlinfo = window.location.href;var UserName = urlinfo.split("_")[1];if (passwd == $("#pass").text()) {$.ajax({type: "POST",url: "../../Home/GrtturePassword",dataType: 'json',anyc: false,data: { GesturePassword: passwd, UserName: UserName },success: function (data) {alert(data);$("#gesturepsa").hide();;$("#Indexs").show();;}})}else {$("#gesturepsa").trigger("passwdWrong");alert("兩次密碼不一致,請重新輸入!");$("#gesturepsa").remove();$("#gesturepwd").after("<div id='gesturepsa'></div>")getur();Recursive();}});} 

  我們將第二次設定的密碼與第一次對比,如果一樣我們就通過ajax將密碼傳到後台,進行密碼儲存操作。如果兩次輸入不一樣我們就通過遞迴在將自己在調用一次進行對比,直至通過,當然你也可以設定3次不同重新設定什麼的。

  由於功能很簡單就不進行詳解,如果有不明白或者要參考源碼的請留言,我會編寫一個dome與大家分享。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.