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 兼容鼠标滚轮事件
Apr 07 Javascript
jQuery Ajax之$.get()方法和$.post()方法
Oct 12 Javascript
JS随机漂浮广告代码具体实例
Nov 19 Javascript
jquery select 设置默认选中的示例代码
Feb 07 Javascript
jquery对象访问是什么及使用方法介绍
May 03 Javascript
JavaScript注入漏洞的原理及防范(详解)
Dec 04 Javascript
layDate日期控件使用方法详解
Nov 15 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
Vue中fragment.js使用方法小结
Feb 17 Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 Javascript
vue 组件基础知识总结
Jan 26 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
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
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
如何实现JS函数的重载
2006/09/22 Javascript
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
js的写法基础分析
2011/01/17 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
Angular 容器部署的方法
2018/04/17 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
python读取LMDB中图像的方法
2018/07/02 Python
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
早会主持词
2014/03/17 职场文书
婚前协议书范本
2014/04/15 职场文书
旅游节目策划方案
2014/05/26 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
2014年双拥工作总结
2014/11/21 职场文书
管理失职检讨书范文
2015/05/05 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python