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 相关文章推荐
一个js封装的不错的选项卡效果代码
Feb 15 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
Mar 18 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
Jun 23 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
Jul 31 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
Mar 03 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
jquery+Jscex打造游戏力度条
Sep 12 Javascript
微信小程序icon组件使用详解
Jan 31 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
Mar 29 Javascript
详解ES6 export default 和 import语句中的解构赋值
May 28 Javascript
JS实现简单随机3D骰子
Oct 24 Javascript
js实现秒表计时器
Dec 16 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生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
python实现剪切功能
2019/01/23 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
事业单位接收函
2014/01/10 职场文书
六十大寿答谢词
2014/01/12 职场文书
一年级数学教学反思
2014/02/01 职场文书
电工技术比武方案
2014/05/11 职场文书
公司联欢会策划方案
2014/05/19 职场文书
大学生应聘求职信
2014/05/26 职场文书
团队激励口号
2014/06/06 职场文书
离婚起诉状范本
2015/05/19 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
2016教师节感恩话语
2015/12/09 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
HTML常用标签超详细整理
2022/03/19 HTML / CSS