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 相关文章推荐
免费空间广告万能消除代码
Sep 04 Javascript
js form 验证函数 当前比较流行的错误提示
Jun 23 Javascript
jQuery Autocomplete自动完成插件
Jul 17 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
Jun 24 Javascript
js拼接html注意问题示例探讨
Jul 14 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
Apr 24 Javascript
JavaScript中的原型prototype属性使用详解
Jun 05 Javascript
基于jquery实现百度新闻导航菜单滑动动画
Mar 15 Javascript
js倒计时简单实现代码
Aug 11 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
Nov 26 Javascript
javascript解析json格式的数据方法详解
Aug 07 Javascript
微信小程序实现下拉加载更多商品
Dec 29 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
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
php数组和链表的区别总结
2019/09/20 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
2020/05/12 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
Vue表情输入组件 微信face表情组件
2019/02/11 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
如何在django中实现分页功能
2020/04/22 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
工作个人的自我评价
2014/01/14 职场文书
绘画专业自荐信范文
2014/02/23 职场文书
优质服务口号
2014/06/11 职场文书
2014年英语工作总结
2014/12/20 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python
ORACLE查看当前账号的相关信息
2021/06/18 Oracle