JS模仿手机端九宫格登录功能实现代码

作者:熊灬孩灬子 时间:2024-04-17 10:33:21 

最近没有项目做,闲来无事写了一个小demo,特此分享到脚本之家平台,供大家参考下,本文写的不好还请各位大侠见谅!

功能及方法逻辑都注释在代码中。所以麻烦大家直接看代码。

效果如下:

JS模仿手机端九宫格登录功能实现代码

话不多说直接上代码:

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与大家分享。

标签:js,九宫格,登录
0
投稿

猜你喜欢

  • golang实现数组分割的示例代码

    2024-05-08 10:23:41
  • Node.js中的process.nextTick使用实例

    2024-05-08 09:36:18
  • python写日志文件操作类与应用示例

    2021-09-29 01:16:38
  • MySQL redo死锁问题排查及解决过程分析

    2024-01-17 08:17:02
  • 前端页面文件拖拽上传模块js代码示例

    2023-09-20 02:15:30
  • python numpy矩阵信息说明,shape,size,dtype

    2021-02-21 17:52:47
  • Laravel框架集合用法实例浅析

    2024-05-11 10:03:44
  • python 从远程服务器下载东西的代码

    2023-01-23 11:00:55
  • Go语言操作MySQL的知识总结

    2024-01-26 01:43:17
  • JavaScript游戏开发之键盘控制层的移动

    2008-09-13 19:29:00
  • python使用opencv对图像mask处理的方法

    2021-05-03 03:23:19
  • VC基于ADO技术访问数据库的方法

    2024-01-28 22:25:08
  • python库JsonSchema验证JSON数据结构使用详解

    2023-02-14 16:24:27
  • numpy自动生成数组详解

    2023-09-02 22:53:47
  • Ubuntu下使用Python实现游戏制作中的切分图片功能

    2021-02-22 22:55:53
  • Python中拆分字符串的操作方法

    2023-12-20 00:43:24
  • opencv 摄像机标定的实现

    2023-09-17 16:08:06
  • vue动态绑定class选中当前列表变色的方法示例

    2024-04-10 13:48:51
  • java之File对象对文件的操作常用的几个方法(推荐)

    2024-01-14 13:13:27
  • asp内置对象ObjectContext详解

    2007-09-18 13:16:00
  • asp之家 网络编程 m.aspxhome.com