h5手势密码开发(使用jq)

直接上代码:

目录结构:

本次开用到的技术jq,以及引入的jq插件jquery.gesture.password.min.js
index.html
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="./css/index.css">
    <title>jq设置h5的手势密码</title>
</head>

<body>
    <div class="gesture_wrapper">
        <div class="thumbnail">
            <ul>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
            <span class=" limit">至少连接四个点</span>
            <span class=" again againcn">再次绘制解锁图案</span>
            <span class=" disagree disagreecn">两次不一致,请重新绘制</span>
        </div>
        <div class="gesturepwd_modal">
            <div id="gesturepwd"></div>
        </div>
        <div>
            <span class="clear_again ">重新绘制</span>
        </div>
    </div>
</body>
<script src="./script/jquery-3.2.1.min.js"></script>
<script src="./script/jquery.gesture.password.min.js"></script>
<script src="./js/index.js"></script>
</html>
index.js
$(function () {
    /*
     *count记录输入手势密码次数
     * pwd1第一次输入的手势密码
     */
    let count = 0,
        pwd1 = null,
        lis = $(‘li‘)
    $(‘.again,.disagree,.limit‘).hide()

    $("#gesturepwd").GesturePasswd({
        backgroundColor: "white", //背景色
        color: "#E4E4E4", //主要的控件颜色
        roundRadii: 25, //大圆点的半径
        pointRadii: 6, //大圆点被选中时显示的圆心的半径
        space: 30, //大圆点之间的间隙
        width: 240, //整个组件的宽度
        height: 240, //整个组件的高度
        lineColor: "red", //用户划出线条的颜色
        zindex: 100 //整个组件的css z-index属性
    });
    $("#gesturepwd").on("hasPasswd", function (e, passwd) {
        var result;
        count++
        console.log(count)
        if (count == 1) {
            if (passwd.length < 4) {
                $("#gesturepwd").trigger("passwdWrong");
                $(‘.limit‘).show()
                count = 0
                return
            }
            $(‘.limit‘).hide()
            pwd1 = passwd
            lis.each(function (i, ele) {
                if (passwd.indexOf(i + 1) != -1) {
                    $(this).css({
                        backgroundColor: ‘red‘
                    })
                }
            })
            $("#gesturepwd").trigger("passwdWrong");
        }

        $(‘.againcn‘).show()

        if (count >= 2) {
            $(‘.again‘).hide()
            if (passwd == pwd1) {
                result = true;
            } else {
                result = false;
            }
            if (result == true) {
                $("#gesturepwd").trigger("passwdRight");

                setTimeout(function () {
                    //密码验证正确后的其他操作,打开新的页面等。。。
                    alert(‘密码正确‘)
                }, 500); //延迟半秒以照顾视觉效果
            } else {
                $("#gesturepwd").trigger("passwdWrong");
                //密码验证错误后的其他操作。。。
                $(‘.disagreecn‘).show()
            }
        }

    });
    //重新绘制
    $(‘.clear_again‘).click(function () {
        count = 0
        pwd1 = null
        $(‘.again,.disagree‘).hide()
        lis.each(function (i, ele) {
            $(this).css({
                backgroundColor: ‘white‘
            })

        })
    })

})
index.css
*{
    list-style: none;
    margin: 0;
    padding: 0;
}
.gesture_wrapper {
    margin-top: 5px;
}

.gesturepwd_modal {
    display: flex;
    justify-content: center;
    margin-top: 60px;
}

.thumbnail {
    margin-top: 60px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.again,
.disagree,
.limit {
    margin-top: 20px;
}

ul {
    display: flex;
    width: 100px;
    flex-wrap: wrap;
}

li {
    width: 20px;
    margin-left: 10px;
    margin-top: 10px;
    border-radius: 50%;
    height: 20px;
    border: 1px solid #E4E4E4;
}

.clear_again {
    margin-top: 80px;
    color: #009943;
    display: flex;
    justify-content: center;
}
效果图

资源文件可到本人github地址:https://github.com/raind33/HTML5/tree/master/h5%E6%89%8B%E5%8A%BF%E5%AF%86%E7%A0%81

原文地址:https://www.cnblogs.com/raind/p/9525121.html

时间: 2024-11-08 22:51:16

h5手势密码开发(使用jq)的相关文章

H5移动端手势密码组件

项目简介 最近参加了2017年360前端星计划,完成了一个有趣的UI组件开发大作业,借机和大家分享一下移动端开发的技术啦~~ 本项目采用原生JS和Canvas实现移动端手势密码组件,支持手势密码设置和验证. 先加星后看,年薪百万!欢迎大家关注我的github,互相学习~~      demo演示地址:http://tangzhirong.github.io/lock/example/demo.html      项目github地址:https://github.com/tangzhirong/

空间手势密码的实现

一.团队介绍 首先还是要介绍一下我们的团队.我们的队名是"来不及了快上车".队长:黄玥.成员:谢园,宋丰年,潘子帅,张帆,高宇轩. 这里是所有队员的链接: 黄玥:http://www.cnblogs.com/hy1234/ 谢园:http://www.cnblogs.com/KKKA/ 宋丰年:http://www.cnblogs.com/Iriya/ 潘子帅:http://www.cnblogs.com/ss961011/ 张帆:http://www.cnblogs.com/ZFyo

APP手势密码绕过

之前写的文章收到了很多的好评,主要就是帮助到了大家学习到了新的思路.自从发布了第一篇文章,我就开始筹备第二篇文章了,最终打算在07v8首发,这篇文章我可以保障大家能够学习到很多思路.之前想准备例子视频,请求了很多家厂商进行授权,但是涉及漏洞信息方面的,厂商都是很严谨的,所以,整个过程没有相关的实际例子,但是我尽可能的用详细的描述让大家能够看得懂.大家不要睡着呦~ 说到APP手势密码绕过的问题,大家可能有些从来没接触过,或者接触过,但是思路也就停留在那几个点上,这里我总结了我这1年来白帽子生涯当中

APICloud视频教程_“H5移动跨平台开发”APICloud课程

"H5移动跨平台开发"APICloud课程 课程观看地址:http://www.xuetuwuyou.com/course/169 课程出自学途无忧网:http://www.xuetuwuyou.com 一.课程使用到的软件 APICloud Studuio(或Sublime.WebStorm加上APICloud插件) Google Chrome浏览器 海马玩手机模拟器(或真机) 二.课程目的:     随着IOS.Android等原生APP的开发成本大.维护成本大,"跨平台

[优化]Swift 简简单单实现手机九宫格手势密码 解锁

我去 为毛这篇文章会被移除首页 技术含量还是有点的   如果在此被移除  那就果断离开园子了 之前的文章 Swift 简简单单实现手机九宫格手势密码解锁 1.对之前的绘制线条的方法进行优化 之前是遍历选中点的集合分别的在点之间绘制线条 改进之后使用系统的API一口气将线条绘制出来 2.增加密码错误情况下想某宝一样红色提示和三角形状的路线指示如下图所示 3.遇到的难点主要是三角形的绘制 和 旋转角度的功能 原理就不多说了 真相见代码 转载需要注明出处 http://www.cnblogs.com/

“H5跨平台APP开发”APICloud从入门到精通

"H5跨平台APP开发"APICloud从入门到精通 课程学习地址:http://www.xuetuwuyou.com/course/164 课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍:               一.课程使用到的软件 APICloud Studuio(或Sublime.WebStorm加上APICloud插件) Google Chrome浏览器 海马玩手机模拟器(或真机) 二.课程目的:     随着IOS.Android等原生

Andriod手势密码破解

★ 引子 之前在Freebuf上看到一片文章讲Andriod的手势密码加密原理,觉得比较有意思,所以就写了一个小程序试试. ★ 原理            Android的手势密码加密原理很简单: 先给屏幕上的每一个点编号(一般是 3 X 3): 00,01,02 03,04,05 06,07,08 注意这里的数字都是十六进制. 假设我沿着左边和下边画了一个 L 字,则手势的点排列顺序 sequence 是 00,03,06,07,08. 然后计算密文 C = SHA-1(sequence),然

HTML5 Canvas简简单单实现手机九宫格手势密码解锁

原文:HTML5 Canvas简简单单实现手机九宫格手势密码解锁 早上花了一个半小时写了一个基于HTML Canvas的手势解锁,主要是为了好玩,可能以后会用到. 思路:根据配置计算出九个点的位置,存入一个数组,当然存入数组的顺序的索引是: 第一行:0   1  2   第二行:3  4  5 第三行:6  7  8 然后就根据这个坐标数组去绘制九个点 再则我们需要一个保存选中点的数组,每当touchmove事件就判断当前触摸点和那个点的距离小于圆的半径  如果为真的话 那么就添加进入选中点的数

支付宝钱包手势密码破解实战

背景 随着移动互联网的普及以及手机屏幕越做越大等特点,在移动设备上购物.消费已是人们不可或缺的一个生活习惯了.随着这股浪潮的兴起,安全.便捷的移动支付需求也越来越大.因此,各大互联网公司纷纷推出了其移动支付平台.其中,用的比较多的要数腾讯的微信和阿里的支付宝钱包了.就我而言,平时和同事一起出去AA吃饭,下班回家打车等日常生活都已经离不开这两个支付平台了. 正所谓树大招风,移动支付平台的兴起,也给众多一直徘徊在网络阴暗地带的黑客们又一次重生的机会.因为移动平台刚刚兴起,人们对移动平台的安全认识度还