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 相关文章推荐
jquery实现带复选框的表格行选中删除时高亮显示
Aug 01 Javascript
JQuery球队选择实例
May 18 Javascript
Bootstrap表单简单实现代码
Mar 06 Javascript
微信小程序 http请求的session管理
Jun 07 Javascript
微信小程序实现图片上传
May 23 Javascript
浅谈Vue项目骨架屏注入实践
Aug 05 Javascript
vue父子组件间引用之$parent、$children
May 20 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
Jul 15 Javascript
微信小程序实现拼图小游戏
Oct 22 Javascript
利用 JavaScript 实现并发控制的示例代码
Dec 31 Javascript
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
Javascript webpack动态import
Apr 19 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
JavaScript 关键字屏蔽实现函数
2009/08/02 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
2020/07/30 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
python的dict,set,list,tuple应用详解
2014/07/24 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
python生成大写32位uuid代码
2020/03/03 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
python 制作python包,封装成可用模块教程
2020/07/13 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
客服文员岗位职责
2013/11/29 职场文书
安全教育心得体会
2013/12/29 职场文书
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
2014年幼师工作总结
2014/11/22 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
寻找成龙观后感
2015/06/12 职场文书
同事去世追悼词
2015/06/23 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers