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 相关文章推荐
控制打印时页眉角的代码
Feb 08 Javascript
使用EXT实现无刷新动态调用股票信息
Nov 01 Javascript
关于javascript 回调函数中变量作用域的讨论
Sep 11 Javascript
JavaScript中String和StringBuffer的速度之争
Apr 01 Javascript
简单js代码实现selece二级联动(推荐)
Feb 18 Javascript
jquery删除数据记录时的弹出提示效果
May 06 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
May 12 Javascript
WEB前端设计师常用工具集锦
Dec 09 Javascript
jquery ui dialog替代confirm实例分析
Jan 25 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
Aug 10 Javascript
vue组件传递对象中实现单向绑定的示例
Feb 28 Javascript
JS实现的input选择图片本地预览功能示例
Aug 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
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
python实现汉诺塔方法汇总
2016/07/25 Python
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
10个Python小技巧你值得拥有
2018/09/29 Python
python读写配置文件操作示例
2019/07/03 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
python 代码运行时间获取方式详解
2020/09/18 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
python基于openpyxl生成excel文件
2020/12/23 Python
Python实现随机爬山算法
2021/01/29 Python
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
自我评价200字分享
2013/12/17 职场文书
校园文明倡议书
2014/05/16 职场文书
董事长助理工作职责
2014/06/08 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
采购员岗位职责
2015/02/03 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
Python&Matlab实现樱花的绘制
2022/04/07 Python
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS