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 EasyUI API 中文文档 - Menu菜单
Oct 03 Javascript
基于JS2Image实现圣诞树代码
Dec 24 Javascript
jquery模拟多级复选框效果的简单实例
Jun 08 Javascript
浅谈js中的引用和复制(传值和传址)
Sep 18 Javascript
js正则表达式注册页面表单验证
Oct 11 Javascript
JS正则替换掉小括号及内容的方法
Nov 29 Javascript
jQuery实现判断控件是否显示的方法
Jan 11 Javascript
总结几道关于Node.js的面试问题
Jan 11 Javascript
基于pako.js实现gzip的压缩和解压功能示例
Jun 13 Javascript
Angular2监听页面大小变化的解决方法
Oct 09 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
Feb 03 Javascript
vue中封装axios并实现api接口的统一管理
Dec 25 Vue.js
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
各种咖啡的英文名子是什么
2021/03/03 新手入门
使用无限生命期Session的方法
2006/10/09 PHP
PHP之短标签开启设置
2013/06/17 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
php获取根域名方法汇总
2014/10/28 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
2015/01/08 Javascript
java中String类型变量的赋值问题介绍
2016/03/23 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
python3学生名片管理v2.0版
2018/11/29 Python
numpy.random模块用法总结
2019/05/27 Python
python实现AdaBoost算法的示例
2020/10/03 Python
表扬信格式
2014/01/12 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
体育口号大全
2014/06/18 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL
Python实现日志实时监测的示例详解
2022/04/06 Python