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 相关文章推荐
关于javascript 回调函数中变量作用域的讨论
Sep 11 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
Jul 04 Javascript
jquery nth-child()选择器的简单应用
Jul 10 Javascript
jQuery动态地获取系统时间实现代码
May 24 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
Apr 04 Javascript
jQuery给元素添加样式的方法详解
Dec 30 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
javascript中使用未定义变量或值的情况分析
Jul 19 Javascript
BootStrap中
Dec 10 Javascript
vue添加class样式实例讲解
Feb 12 Javascript
vue项目打包后怎样优雅的解决跨域
May 26 Javascript
canvas绘制折线路径动画实现
May 12 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
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
人工神经网络算法知识点总结
2019/06/11 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
python实现在一个画布上画多个子图
2020/01/19 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
财务人员个人求职信范文
2013/12/04 职场文书
商场总经理岗位职责
2014/02/03 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
司法建议书范文
2014/05/13 职场文书
生日庆典策划方案
2014/06/02 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
亮剑观后感600字
2015/06/05 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle