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 页面载入进度条实现代码
Feb 08 Javascript
jquery动态添加删除一行数据示例
Jun 12 Javascript
jQuery实现表格展开与折叠的方法
May 04 Javascript
jquery淡入淡出效果简单实例
Jan 14 Javascript
详解Vue.js动态绑定class
Dec 20 Javascript
微信小程序 小程序制作及动画(animation样式)详解
Jan 06 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
Dec 21 Javascript
vue v-model实现自定义样式多选与单选功能
Jul 05 Javascript
create-react-app安装出错问题解决方法
Sep 04 Javascript
VueJS 组件参数名命名与组件属性转化问题
Dec 03 Javascript
基于JavaScript伪随机正态分布代码实例
Nov 07 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
推荐25款php中非常有用的类库
2014/09/29 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
基于jquery循环map功能的代码
2011/02/26 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
Python中的并发编程实例
2014/07/07 Python
Python最长公共子串算法实例
2015/03/07 Python
python将文本转换成图片输出的方法
2015/04/28 Python
Python itertools模块详解
2015/05/09 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
基于python实现复制文件并重命名
2020/09/16 Python
Python实现微信表情包炸群功能
2021/01/28 Python
python中os.remove()用法及注意事项
2021/01/31 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
普通院校学生的自荐信
2013/11/27 职场文书
求职自荐书范文
2013/12/04 职场文书
公司面试感谢信
2014/02/01 职场文书
《赶海》教学反思
2014/04/20 职场文书
中学社团活动总结
2015/05/07 职场文书
2016年离婚协议书范文
2016/03/18 职场文书