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实现的类似Google的Div拖动效果代码
Aug 09 Javascript
jquery入门—编写一个导航条(可伸缩)
Jan 07 Javascript
JS 去前后空格大全(IE9亲测)
Jul 15 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
Oct 29 Javascript
jquery实现网页的页面平滑滚动效果代码
Nov 02 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
详解require.js配置路径的用法和css的引入
Sep 06 Javascript
Angular自定义组件实现数据双向数据绑定的实例
Dec 11 Javascript
结合Vue控制字符和字节的显示个数的示例
May 17 Javascript
实例讲解JavaScript预编译流程
Jan 24 Javascript
JS FormData对象使用方法实例详解
Feb 12 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 22 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脚本数据库功能详解(上)
2006/10/09 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
js实现简单的秒表
2020/01/16 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
详解Python 函数如何重载?
2019/04/23 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
Python常用类型转换实现代码实例
2020/07/28 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
编程输出如下图形
2013/11/24 面试题
学生思想表现的评语
2014/01/30 职场文书
中国好声音广告词
2014/03/18 职场文书
毕业生求职信
2014/06/10 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书