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扩展自写的 UI导航
Jan 13 Javascript
javascript与CSS复习(《精通javascript》)
Jun 29 Javascript
DIV菜单层实现代码
Nov 19 Javascript
jquery和ajax的关系详细介绍
Nov 29 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
Jan 23 Javascript
通过javascript进行UTF-8编码的实现方法
Jun 27 Javascript
JavaScript面试开发常用的知识点总结
Aug 08 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
Sep 20 Javascript
angularjs数组判断是否含有某个元素的实例
Feb 27 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
May 23 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
Oct 09 Javascript
浅谈vuex actions和mutation的异曲同工
Dec 13 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备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
浅谈javascript对象模型和function对象
2014/12/26 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
python端口扫描系统实现方法
2014/11/19 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
2019/08/23 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
python openCV自制绘画板
2020/10/27 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
护理专业毕业生自我鉴定
2013/10/08 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android