javascript实现滑动解锁功能

发布时间 - 2026-01-11 00:17:43    点击率:

效果图:

代码如下:

<!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>

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


# js实现滑动解锁  # javascript  # 滑动  # 滑动事件  # jQuery使用unlock.js插件实现滑动解锁  # javascript实现滑动解锁功能  # js实现html滑动图片拼图验证  # JS实现滑动拼图验证功能完整示例  # js+canvas实现滑动拼图验证码功能  # 使用 Node.js 模拟滑动拼图验证码操作的示例代码  # JS实现PC手机端和嵌入式滑动拼图验证码三种效果  # javascript结合Flexbox简单实现滑动拼图游戏  # 原生js实现简单滑动解锁功能 js实现滑动拼图解锁  # 微软  # 滑块  # 鼠标  # 解锁  # 判断是否  # display  # eee  # line  # solid  # background  # ccc  # border  # radius  # position  # relative  # auto  # index  # left  # font  # green 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  网站制作报价单模板图片,小松挖机官方网站报价?  Python函数文档自动校验_规范解析【教程】  Laravel中的withCount方法怎么高效统计关联模型数量  Android使用GridView实现日历的简单功能  如何在阿里云完成域名注册与建站?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  如何快速生成凡客建站的专业级图册?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  想要更高端的建设网站,这些原则一定要坚持!  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  详解jQuery中的事件  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Java类加载基本过程详细介绍  Laravel怎么判断请求类型_Laravel Request isMethod用法  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  微信小程序 canvas开发实例及注意事项  JavaScript Ajax实现异步通信  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  如何确保西部建站助手FTP传输的安全性?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何快速完成中国万网建站详细流程?  详解jQuery停止动画——stop()方法的使用  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  中国移动官方网站首页入口 中国移动官网网页登录  如何在IIS服务器上快速部署高效网站?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  海南网站制作公司有哪些,海口网是哪家的?  怎么用AI帮你设计一套个性化的手机App图标?  装修招标网站设计制作流程,装修招标流程?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  bing浏览器学术搜索入口_bing学术文献检索地址  C#如何调用原生C++ COM对象详解  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  个人网站制作流程图片大全,个人网站如何注销?