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 相关文章推荐
escape、encodeURI 和 encodeURIComponent 的区别
Mar 02 Javascript
JS教程:window.location使用方法的区别介绍
Oct 04 Javascript
javascript中验证大写字母、数字和中文
Jan 15 Javascript
JS来动态的修改url实现对url的增删查改
Sep 05 Javascript
jquery带下拉菜单和焦点图代码分享
Aug 24 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
Nov 30 Javascript
老生常谈的跨域处理
Jan 11 Javascript
bootstrap table sum总数量统计实现方法
Oct 29 Javascript
JavaScript如何对图片进行黑白化
Apr 10 Javascript
vue语法自动转typescript(解放双手)
Sep 18 Javascript
react-router-dom 嵌套路由的实现
May 02 Javascript
JavaScript编码小技巧分享
Sep 17 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
MySQL相关说明
2007/01/15 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
js代码延迟一定时间后执行一个函数的实例
2017/02/15 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
ES6基础之默认参数值
2019/02/21 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
js中实现继承的五种方法
2021/01/25 Javascript
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
Django实现跨域请求过程详解
2019/07/25 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
详解Python中的路径问题
2020/09/02 Python
Python random模块的使用示例
2020/10/10 Python
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
中学实习教师自我鉴定
2013/12/12 职场文书
亲子读书活动方案
2014/02/22 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
产品质量保证书范本
2015/02/27 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
Nginx快速入门教程
2021/03/31 Servers