ホームページ >ウェブフロントエンド >jsチュートリアル >携帯電話上の9マスグリッドログイン機能実装コードをJSで模倣_javascriptスキル

携帯電話上の9マスグリッドログイン機能実装コードをJSで模倣_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 15:03:121477ブラウズ

最近やるべきプロジェクトがないので、暇なときに小さなデモを書きました。参考として Script House プラットフォームで共有したいと思います。この記事の書き方が下手なのはご容赦ください。

関数とメソッドのロジックはコード内に注釈が付けられます。したがって、コードを直接見てください。

効果は次のとおりです:

早速、コードに進みましょう:

js 部分:

まず、9 正方形のグリッドを 2 つ描画します。1 つは初めてログインしてスライド パスワードを設定するため、もう 1 つは最初に入力したスライド パスワードと比較するために使用されます。 2 つのパスワードが有効であるかどうかを判断する時間がかかります

最初の 9 マスのグリッド

$("#gesturepwd").GesturePasswd({
backgroundColor: "#252736", //背景色
color: "#FFFFFF", //主要的控件颜色
roundRadii: 25, //大圆点的半径
pointRadii: 6, //大圆点被选中时显示的圆心的半径
space: 30, //大圆点之间的间隙
width: 240, //整个组件的宽度
height: 240, //整个组件的高度
lineColor: "#00aec7", //用户划出线条的颜色
zindex: 100 //整个组件的css z-index属性
}); 

同じ方法で 2 番目の 9 正方形グリッドを描画します

///加载第二个
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> 

ユーザーがログインすると、ビジネス ロジック層を通じてデータベースがクエリされ、顧客が Jiugongge パスワードを設定しているかどうかが確認されます。設定されている場合は add() メソッドが呼び出され、設定されていない場合は 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");
//密码验证错误后的其他操作。。。
}
});
} 

ここでは、9 マス目のグリッド内でスライドする顧客のパスワードを取得し、それを取り出し (つまり passwd)、隠し要素パスのパスワードと比較し、同じであれば次へ進みます。ステップ、つまりログインは成功します。ドーム内のすべてのパスワードをページの要素に直接配置しているため、これは実際の開発では推奨されません。これを行う場合は、操作する前に暗号化することをお勧めします。ユーザーが初めてセットアップする場合は、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();
}
});
} 

2回目に設定したパスワードと1回目に設定したパスワードを比較し、同じであればajax経由でバックグラウンドにパスワードを渡し、パスワードを保存します。 2 つの入力が異なる場合は、一致するまで再帰によって再度呼び出して比較します。もちろん、3 つの異なるリセットなどを設定することもできます。

非常に簡単な機能なので詳しくは説明しませんが、分からない場合やソースコードを参照したい場合は、メッセージを残していただければドームを作成して共有します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。