JavaScript实现滑块验证解锁


Posted in Javascript onJanuary 07, 2021

本文实例为大家分享了JavaScript实现滑块验证解锁的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">
 
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 // 引入矢量图标库
 <link rel="stylesheet" href="https://at.alicdn.com/t/font_2248239_eso2z5bskxk.css">
 <title>Document</title>
 <style>
 * {
  margin: 0;
  padding: 0;
 }
 
 .box {
  width: 300px;
  height: 40px;
  line-height: 40px;
  text-align: center;
  background-color: #e8e8e8;
  box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2);
  position: relative;
  margin-top: 100px;
  margin-left: 200px;
 }
 
 .box .bgColor {
  position: absolute;
  left: 0;
  top: 0;
  width: 40px;
  height: 40px;
 }
 
 .box .tips {
  position: absolute;
  width: 100%;
  height: 40px;
  line-height: 40px;
  font-size: 14px;
  color: #000;
  text-align: center;
  user-select: none;
 }
 
 .ball {
  width: 50px;
  height: 38px;
  border: 1px solid #ccc;
  background: #fff;
  text-align: center;
  cursor: move;
  position: absolute;
  top: 0;
  left: 0;
 }
 </style>
</head>
 
<body>
 <div class="box">
 <div class="bgColor"></div>
 <div class="tips">滑动验证</div>
 <div class="ball"><i class="iconfont icon-double-arro-right"></i></div>
 </div>
</body>
<script>
 var box = document.getElementsByClassName("box")[0];
 var ball = document.getElementsByClassName("ball")[0];
 var bgColor = document.getElementsByClassName("bgColor")[0];
 var tips = document.getElementsByClassName("tips")[0];
 // 设置成功状态
 var isSuccess = false; //默认为false 不成功
 ball.onmousedown = function(e) {
 var e = e || window.event;
 
 // 获取鼠标相对于事件源左上角的位置
 var posx = e.offsetX;
 
 // 每次鼠标按下时 清除动画样式
 ball.style.transition = "";
 bgColor.style.transition = "";
 document.onmousemove = function(e) {
  var e = e || window.event;
  var x = e.pageX - box.offsetLeft - posx;
  var max = box.clientWidth - ball.clientWidth;
  if (x <= 0) {
  x = 0;
  }
  if (x >= max) {
  x = max;
  }
  bgColor.style.width = x + "px";
  ball.style.left = x + "px";
  bgColor.style.backgroundColor = "#6ff";
  if (x == max) {
  success();
  }
 }
 document.onmouseup = function() {
  // 如果没有解锁成功则返回原点
  if (!isSuccess) {
  bgColor.style.width = 0 + "px";
  ball.style.left = 0 + "px";
  ball.style.transition = "left 0.6s linear";
  bgColor.style.transition = "width 0.6s linear";
  }
  // 鼠标抬起时,移除鼠标移动事件和鼠标抬起事件
  document.onmouseup = null;
  document.onmousemove = null;
 }
 }
 // 定义一个滑块解锁成功的方法
 function success() {
 isSuccess = true;
 // 获取图标
 var icon = ball.firstElementChild;
 tips.textContent = "解锁成功";
 bgColor.style.backgroundColor = "lightgreen";
 icon.className = "iconfont icon-gou";
 icon.style.color = "lightgreen";
 //滑动成功时,移除鼠标按下事件
 ball.onmousedown = null;
 }
</script>
 
</html>

 效果图如下:

JavaScript实现滑块验证解锁

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery AJAX 中文乱码问题解决
Jun 05 Javascript
JS获取节点的兄弟,父级,子级元素的方法
Jan 09 Javascript
JS小游戏之极速快跑源码详解
Sep 25 Javascript
javascript字符串与数组转换汇总
May 26 Javascript
Javascript中的getUTCHours()方法使用详解
Jun 10 Javascript
javascript实现input file上传图片预览效果
Dec 31 Javascript
学习Node.js模块机制
Oct 17 Javascript
Javascript中for循环语句的几种写法总结对比
Jan 23 Javascript
js date 格式化
Feb 15 Javascript
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
深度解读vue-resize的具体用法
Jul 08 Javascript
Vue循环中多个input绑定指定v-model实例
Aug 31 Javascript
js删除指定位置超链接中含有百度与360的标题
Jan 06 #Javascript
基于element-ui封装表单金额输入框的方法示例
Jan 06 #Javascript
JS中多层次排序算法的实现代码
Jan 06 #Javascript
如何使用原生Js实现随机点名详解
Jan 06 #Javascript
详解微信小程序「渲染层网络层错误」的解决方法
Jan 06 #Javascript
JavaScript 中的六种循环方法
Jan 06 #Javascript
JavaScript的一些小技巧分享
Jan 06 #Javascript
You might like
我的论坛源代码(六)
2006/10/09 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
js性能优化技巧
2015/11/29 Javascript
js实现文字截断功能
2016/09/14 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
Python文件和目录操作详解
2015/02/08 Python
python开发之thread实现布朗运动的方法
2015/11/11 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Django中间件实现拦截器的方法
2018/06/01 Python
使用python对excle和json互相转换的示例
2018/10/23 Python
Django单元测试中Fixtures用法详解
2020/02/25 Python
Pycharm配置PyQt5环境的教程
2020/04/02 Python
如何在python中执行另一个py文件
2020/04/30 Python
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
求职信内容考虑哪几点
2013/10/05 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
弘扬职业精神演讲稿
2014/03/20 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
婚前协议书标准版
2014/10/19 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers