javascript实现滑动解锁功能


Posted in Javascript onDecember 31, 2014

实现效果:

javascript实现滑动解锁功能

css样式代码略。

html代码:

页面上导入了jquery.mobile 、jquery

<script src="http://apps.bdimg.com/libs/jquery/1.10.2/jquery.min.js"></script>

<script src="http://apps.bdimg.com/libs/jquerymobile/1.4.2/jquery.mobile.min.js"></script>
<div id="pageSlide">

                        <input type="hidden" value="" id="captcha"/>

 

                        <div id="slider" class="slider">

                            <span id="label" class="label"></span>

                            <span id="lableTip">Slide to confirm I am human!</span>

                        </div>

                    </div>

 js代码:

<script type="text/javascript">

        window.onload = function () {

            var slider1 = new Slider();

            slider1.Init();

            ///屏幕大小发生改变时触发

            $(window).resize(function () {

                slider1.HanderIn();

                slider1.HanderOut();

            });

        }

        //滑动条对象

        function Slider(swipestart, min, max, index, IsOk, lableIndex) {

            var _self = this;

            //是否开始滑动

            _self.swipestart = swipestart;

            //最小值

            _self.min = min;

            //最大值

            _self.max = max;

            //当前滑动条所处的位置

            _self.index = index;

            //是否滑动成功

            _self.IsOk = IsOk;

            //鼠标在滑动按钮的位置

            _self.lableIndex = lableIndex;

        }

        //初始化

        Slider.prototype.Init = function () {

            var _self = this;

            $("#label").on("mousedown", function (event) {

                var e = event || window.event;

                _self.lableIndex = e.clientX - this.offsetLeft;

                _self.HanderIn();

            });

            $("#pageSlide").on("mousemove", function (event) {

                _self.HanderMove(event);

            });

            $(document).on("mouseup", function (event) {

                _self.HanderOut();

            });

            $("#label").on("touchstart", function (event) {

                var e = event || window.event;

                _self.lableIndex = e.originalEvent.pageX - this.offsetLeft;

                _self.HanderIn();

            });

            $("#pageSlide").on("touchmove", function (event) {

                _self.HanderMove(event, "mobile");

            });

            $(document).on("touchend", function (event) {

                _self.HanderOut();

            });

        }

        //鼠标/手指接触滑动按钮

        Slider.prototype.HanderIn = function () {

            var _self = this;

            _self.swipestart = true;

            _self.min = 0;

            _self.max = $("#slider").width();

        }

        //鼠标/手指移出

        Slider.prototype.HanderOut = function () {

            var _self = this;

            //停止

            _self.swipestart = false;

            _self.Move();

        }

        //鼠标/手指移动

        Slider.prototype.HanderMove = function (event, type) {

            var _self = this;

            if (_self.swipestart) {

                event.preventDefault();

                var event = event || window.event;

                if (type == "mobile") {

                    _self.index = event.originalEvent.pageX - _self.lableIndex;

                } else {

                    _self.index = event.clientX - _self.lableIndex;

                }

                _self.Move();

            }

        }

        //鼠标/手指移出

        Slider.prototype.Move = function () {

            var _self = this;

            $(".warn").text("index:" + _self.index + ", max" + _self.max + ",lableIndex:" + _self.lableIndex + ",value:" + $("#captcha").val() + " date:" + new Date().getUTCDate());

            if ((_self.index + 20) >= _self.max) {

                _self.index = _self.max - 20;

            }

            if (_self.index < 0) {

                _self.index = _self.min;

            }

            $(".label").css("left", _self.index + "px");

            if (_self.index == (_self.max - 20)) {

                //停止

                _self.swipestart = false;

                _self.IsOk = true;//解锁

                $("#captcha").val(1);

                var style = {"filter": "alpha(opacity=1)",

                    "-moz-opacity": "1", "opacity": "1"}

                $(".ui-btn.ui-input-btn.ui-corner-all.ui-shadow").css(style);

                $("#slider").css("background-color", "#E5EE9F");

                $("#lableTip").text("Thank You!");

            } else {

                _self.IsOk = false;//未解锁

                $("#captcha").val(0);

                var style = { "filter": "alpha(opacity=0.2)",

                    "-moz-opacity": "0.2", "opacity": "0.2"}

                $(".ui-btn.ui-input-btn.ui-corner-all.ui-shadow").css(style);

                $("#slider").css("background-color", "#FDEB9C");

                $("#lableTip").text("Slide to confirm I am human!");

            }

        }

    </script>

效果实现:

javascript实现滑动解锁功能

Javascript 相关文章推荐
JavaScript学习笔记(十七)js 优化
Feb 04 Javascript
用Javascript实现Sleep暂停功能代码
Sep 03 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
Oct 15 Javascript
JavaScript实现的使用键盘控制人物走动实例
Aug 27 Javascript
js图片实时加载提供网页打开速度
Sep 11 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
Nov 02 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
关于JavaScript的单双引号嵌套问题
Aug 20 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
Sep 13 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
Vue动态加载异步组件的方法
Nov 21 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
Dec 12 Javascript
JavaScript中number转换成string介绍
Dec 31 #Javascript
JavaScript中string转换成number介绍
Dec 31 #Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
Dec 31 #Javascript
JavaScript中的object转换成number或string规则介绍
Dec 31 #Javascript
javascript 事件处理示例分享
Dec 31 #Javascript
JavaScript中的变量作用域介绍
Dec 31 #Javascript
JavaScript中的变量定义与储存介绍
Dec 31 #Javascript
You might like
php 信息采集程序代码
2009/03/17 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
JavaScript作用域链使用介绍
2013/08/29 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
js只执行1次的函数示例
2016/07/20 Javascript
React快速入门教程
2017/01/17 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
vue动态设置页面title的方法实例
2020/08/23 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
python logging设置level失败的解决方法
2020/02/19 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
彪马俄罗斯官网:PUMA俄罗斯
2019/07/13 全球购物
副厂长岗位职责
2014/02/02 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
单位车辆管理制度
2015/08/05 职场文书
安全生产学习心得体会
2016/01/18 职场文书
高中政治教师教学反思
2016/02/23 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书