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 相关文章推荐
Extjs学习笔记之八 继承和事件基础
Jan 08 Javascript
javascript 操作select下拉列表框的一点小经验
Mar 20 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
Oct 21 Javascript
js 验证密码强弱的小例子
Mar 21 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
Jun 30 Javascript
javascript实现的登陆遮罩效果汇总
Nov 09 Javascript
JavaScript观察者模式(经典)
Dec 09 Javascript
angularjs中的$eval方法详解
Apr 24 Javascript
electron demo项目npm install安装失败的解决方法
Feb 06 Javascript
详细教你微信公众号正文页SVG交互开发技巧
Jul 25 Javascript
微信小程序图片自适应实现解析
Jan 21 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 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
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
动态加载js的几种方法
2006/10/23 Javascript
JS重要知识点小结
2011/11/06 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
python里对list中的整数求平均并排序
2014/09/12 Python
使用PDB简单调试Python程序简明指南
2015/04/25 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
Python操作SQLite数据库的方法详解
2017/06/16 Python
python pillow模块使用方法详解
2019/08/30 Python
python画微信表情符的实例代码
2019/10/09 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
水污染治理工程专业求职信
2014/06/14 职场文书
部门2015年度工作总结
2015/04/29 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android