javascript实现滑动解锁功能


Posted in Javascript onMarch 22, 2017

效果图:

javascript实现滑动解锁功能

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <style type="text/css">
 * {
 margin: 0;
 padding: 0;
 }
 #slider-box {
 width: 300px;
 height: 50px;
 border-radius: 4px;
 background: #ccc;
 margin: 250px auto;
 position: relative;
 }
 #slider {
 width: 48px;
 height: 48px;
 border: 1px solid #eee;
 text-align: center;
 line-height: 48px;
 display: inline-block;
 background: #fff;
 border-radius: 4px;
 cursor: move;
 position: absolute;
 left: 0;
 z-index: 5;
 }
 #slider-text {
 text-align: center;
 line-height: 50px;
 display: inline-block;
 width: 100%;
 height: 50px;
 font-family: "微软雅黑";
 position: absolute;
 left: 0;
 z-index: 4;
 }
 #slider-bg {
 width: 0;
 height: 48px;
 background: green;
 position: absolute;
 z-index: 3;
 border-radius: 4px;
 }
 #slider-Emerge {
 width: 100px;
 background:;
 height: 50px;
 position: absolute;
 }
 #stop-go {
 width: 48px;
 height: 48px;
 border: 1px solid #eee;
 background:#36F;
 position: absolute;
 right: -1px;
 display: none;
 text-align: center;
 line-height: 48px;
 color: #fff;
 font-family: "微软雅黑";
 border-radius: 4px;
 z-index: 5;
 }
 div{
 -moz-user-select:none;
 -webkit-user-select:none;
 user-select:none; 
 }
 </style>
</head>
<body>
 <div id="slider-box">
 <span id="slider">></span>
 <span id="slider-text">滑动解锁</span>
 <span id="slider-bg"></span>
 <span id="slider-Emerge"></span>
 <span id="stop-go">∨</span>
 </div>
</body>
 <script type="text/javascript">
 var sliderel={
  $: function(selector){
  return document.getElementById(selector)
  },
 getEvent:function(e){

  var e=e || window.event
  return e;
 },
 stopBubble:function(e){
  var e =this.getEvent(e)
  if(typeof e.preventDefault != "undefined"){
  e.preventDefault();
  }else{
  e.returnValue = false;
  }
 }
 },
 Elemt={
 flag:false,
 nowMoseX: 0,
 mx:sliderel.$("slider-box"),
 sd:sliderel.$("slider"),
 st:sliderel.$("slider-text"),
 sb:sliderel.$("slider-bg"),
 se:sliderel.$("slider-Emerge"),
 sg:sliderel.$("stop-go"),
 }
 Elemt.sd.onmousedown=function(e){ 
  var e =sliderel.getEvent(e)
  sliderel.stopBubble(e);
  Elemt.flag=true
  nowMoseX=e.clientX-Elemt.sd.offsetLeft;
 }
 //滑块最大移动的距离
 maxMove=Elemt.mx.offsetWidth -Elemt.sd.offsetWidth;
 //鼠标移动的时候是否成功
 Elemt.mx.onmousemove=function(e){
  var e =sliderel.getEvent(e)
  if(Elemt.flag){
  var moveX=e.clientX-nowMoseX;
  var oElemLeft=Elemt.sd.offsetLeft;//判断滑块移动的范围  
  if(oElemLeft<0){ //判断滑块是否超出限制位置
  moveX=0;
  Elemt.flag=false
  }else if(oElemLeft>maxMove){
  moveX=maxMove;
  Elemt.sg.style.display="block";
  Elemt.sd.style.display="none"
  Elemt.sb.style.width=300+"px"
  Elemt.st.innerHTML="滑动成功"
  Elemt.st.style.color="#fff"
  }
  }
  Elemt.sd.style.left=moveX+"px" 
  Elemt.sb.style.width=oElemLeft+20+"px";
 }
 //当鼠抬起判断是否滑动成功
 Elemt.mx.onmouseup=function(e){
  var e =sliderel.getEvent(e)
  Elemt.flag=false
  if(Elemt.sd.offsetLeft<maxMove){
  speed=Math.ceil(Elemt.sd.offsetLeft/40);
  time=setInterval(function(){
  if(Elemt.sd.offsetLeft>=0){
   Elemt.sd.style.left=Elemt.sd.offsetLeft-speed+"px";
   Elemt.sb.style.width=Elemt.sb.offsetWidth-speed+"px";
  }else{
   clearInterval(time);
   return false;
  }
  },10)
  }
  }
 //当鼠离开是否滑动成功 
 Elemt.sd.onmouseout=function(e){
  sliderel.stopBubble(e);
  Elemt.flag=false;
  if( Elemt.sd.offsetLeft<maxMove){
  speed=Math.ceil(Elemt.sd.offsetLeft/40);
  time=setInterval(function(){
  if(Elemt.sd.offsetLeft>=0){
   Elemt.sd.style.left=Elemt.sd.offsetLeft-speed+"px";
   Elemt.sb.style.width=Elemt.sb.offsetWidth-speed+"px";
  }else{
   clearInterval(time);
   return false;
  }
  },10);
  }
 }
 </script>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript prototype属性深入介绍
Nov 27 Javascript
手机端页面rem宽度自适应脚本
May 20 Javascript
javascript禁止访客复制网页内容的实现代码
Aug 05 Javascript
javascript类型系统——undefined和null全面了解
Jul 13 Javascript
Js动态设置rem来实现移动端字体的自适应代码
Oct 14 Javascript
原生JavaScript实现Tooltip浮动提示框特效
Mar 07 Javascript
微信小程序 获取javascript 里的数据
Aug 17 Javascript
浅谈Angular HttpClient简单入门
May 04 Javascript
Vue2.0 v-for filter列表过滤功能的实现
Sep 07 Javascript
Vue项目查看当前使用的elementUI版本的方法
Sep 27 Javascript
微信小程序实现滑动操作代码
Apr 23 Javascript
五句话帮你轻松搞定js原型链
Dec 09 Javascript
Bootstrap警告(Alerts)的实现方法
Mar 22 #Javascript
bootstrap IE8 兼容性处理
Mar 22 #Javascript
详解angular中通过$location获取路径(参数)的写法
Mar 21 #Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
Mar 21 #jQuery
Linux使用Node.js建立访问静态网页的服务实例详解
Mar 21 #Javascript
在 Angular 中实现搜索关键字高亮示例
Mar 21 #Javascript
js省市区级联查询(插件版&amp;无插件版)
Mar 21 #Javascript
You might like
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
Smarty安装配置方法
2008/04/10 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
PHP处理会话函数大总结
2015/08/05 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
php实现文章评论系统
2019/02/18 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
2014/02/23 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
老生常谈的跨域处理
2017/01/11 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
python实现按行切分文本文件的方法
2016/04/18 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
python实现的Iou与Giou代码
2020/01/18 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
python drf各类组件的用法和作用
2021/01/12 Python
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
老师自我鉴定范文
2013/12/25 职场文书
企业指导教师评语
2014/04/28 职场文书
乔迁新居祝福语
2019/11/04 职场文书
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL
postgresql中如何执行sql文件
2023/05/08 PostgreSQL