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代码
Mar 01 Javascript
js获取select标签的值且兼容IE与firefox
Dec 30 Javascript
parentElement,srcElement的使用小结
Jan 13 Javascript
ie浏览器使用js导出网页到excel并打印
Mar 11 Javascript
jQuery中scrollLeft()方法用法实例
Jan 16 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
Sep 02 Javascript
JavaScript数组排序小程序实现解析
Jan 13 Javascript
javascript实现页面的实时时钟显示示例
Aug 06 Javascript
原生js实现自定义滚动条
Jan 20 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 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
discuz的php防止sql注入函数
2011/01/17 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
jQuery cdn使用介绍
2013/05/08 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
Python中类型关系和继承关系实例详解
2015/05/25 Python
python中range()与xrange()用法分析
2016/09/21 Python
python实现公司年会抽奖程序
2019/01/22 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
《美丽的公鸡》教学反思
2014/02/25 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
质量整改通知单
2015/04/21 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
电工生产实习心得体会
2016/01/22 职场文书
Python Numpy库的超详细教程
2022/04/06 Python