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


Posted in Javascript onApril 28, 2016

最近没有项目做,闲来无事写了一个小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与大家分享。

Javascript 相关文章推荐
JQuery 简便实现页面元素数据验证功能
Mar 24 Javascript
js中 关于undefined和null的区别介绍
Apr 16 Javascript
javascript 常见功能汇总
Jun 11 Javascript
jquery 表单验证之通过 class验证表单不为空
Nov 02 Javascript
JavaScript代码实现左右上下自动晃动自动移动
Apr 08 Javascript
JS HTML5拖拽上传图片预览
Jul 18 Javascript
vue 虚拟dom的patch源码分析
Mar 01 Javascript
详解Vue 多级组件透传新方法provide/inject
May 09 Javascript
Element Input组件分析小结
Oct 11 Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 Javascript
Vue+Element-U实现分页显示效果
Nov 15 Javascript
如何在 Vue 中使用 JSX
Feb 14 Vue.js
jQuery实现的鼠标经过时变宽的效果(附demo源码)
Apr 28 #Javascript
Bootstrap Chart组件使用教程
Apr 28 #Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
Apr 28 #Javascript
location.hash保存页面状态的技巧
Apr 28 #Javascript
字符串反转_JavaScript
Apr 28 #Javascript
使用 stylelint检查CSS_StyleLint
Apr 28 #Javascript
基于BootStarp的Dailog
Apr 28 #Javascript
You might like
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
JavaScript 变量、作用域及内存
2015/04/08 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
Python Property属性的2种用法
2015/06/21 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
python图书管理系统
2020/04/05 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
大学生村官工作感言
2014/01/10 职场文书
反对邪教标语
2014/06/30 职场文书
社区党员公开承诺书
2014/08/30 职场文书
建设工程授权委托书
2014/09/22 职场文书
致运动员加油稿
2015/07/21 职场文书
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS