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 相关文章推荐
快速保存网页中所有图片的方法
Jun 23 Javascript
用脚本调用样式的几种方法
Dec 09 Javascript
JavaScript 直接操作本地文件的实现代码
Dec 01 Javascript
JavaScript验证图片类型(扩展名)的函数分享
May 05 Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
Aug 11 Javascript
JS实现快递单打印功能【推荐】
Jun 21 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
Aug 28 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
Aug 12 Javascript
原生js无缝轮播插件使用详解
Mar 09 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
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
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
php输出xml格式字符串(用的这个)
2012/07/12 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
php里array_work用法实例分析
2015/07/13 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
JavaScript 原型继承
2011/12/26 Javascript
JavaScript面向对象(极简主义法minimalist approach)
2012/07/17 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
在Python的循环体中使用else语句的方法
2015/03/30 Python
Python 爬虫的工具列表大全
2016/01/31 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
教育系毕业生中文求职信范文
2013/10/06 职场文书
学习新党章思想汇报
2014/01/09 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
岗位明星事迹材料
2014/05/18 职场文书
云服务器部署 Web 项目的实现步骤
2022/06/28 Servers