需求:js实现滑块验证

思路:设置position:absolute,通过left值控制滑动

再来说几个js事件:

onmousedown

事件会在鼠标按键被按下时发生

onmousemove

事件会在鼠标指针移动时发生

onmouseup

事件会在鼠标松开时发生

实现:

//完成图片及滑块的摆放

请拖动滑块解锁
>>

及样式:

.box {

width: 311px;

height:155px;

margin:0 auto;

position:relative;

}

.inner {

position:absolute;

left:0;

}

.drag{

width: 311px;

height: 40px;

line-height: 40px;

background-color: #e8e8e8;

position: relative;

margin:0 auto;

}

.bg{

width:40px;

height: 100%;

position: absolute;

background-color: #75CDF9;

}

.text{

position: absolute;

width: 100%;

height: 100%;

text-align: center;

user-select: none;

}

.btn{

width:40px;

height: 38px;

position: absolute;

border:1px solid #ccc;

cursor: move;

font-family: "宋体";

text-align: center;

background-color: #fff;

user-select: none;

color:#666;

}

写完后是这样滴:

接下来写事件:

首先获取滑动键被点了

btn.onmousedown = function(e){

var e = e || window.event;

//鼠标点的位置

var downX = e.clientX;

}

监听移动事件(写在点击方法里面,这里为了方便介绍,可下载源码):

document.onmousemove = function(e){

var e = e || window.event;

//获取鼠标移动后的水平位置

var moveX = e.clientX;

//获取移动了多少

offsetX = moveX - downX;

//防止越界

if( offsetX > distance){

offsetX = distance;//如果滑过了终点,就将它停留在终点位置

}else if( offsetX < 0){

offsetX = 0;//如果滑到了起点的左侧,就将它重置为起点位置

}

//根据移动距离让按钮,小图片及背景色动起来

按钮.style.left = offsetX + "px";

背景.style.width = offsetX + "px";

小图.style.left=offsetX + "px";

}

然后通过移动距离和需要的距离做对比,获取状态。

if( offsetX == "目标"){

//1.设置滑动成功后的样式

text.innerHTML = "";

text.style.color = "#fff";

btn.innerHTML = "√";

btn.style.color = "green";

bg.style.backgroundColor = "lightgreen";

success=true;

//2.成功后,清除掉鼠标按下事件和移动事件(因为移动时并不会涉及到鼠标松开事件)

btn.onmousedown = null;

document.onmousemove = null;

//3.成功解锁后的回调函数

setTimeout(function(){

alert('解锁成功!');

},100);

}

当鼠标松开时:

document.onmouseup = function(e){

//如果鼠标的水平移动距离 = 滑动成功的宽度

if( success){

return;

}else{

//反之,则将滑块复位(设置了1s的属性过渡效果)

btn.style.left = 0;

bg.style.width = 0;

inner.style.left=0;

btn.style.transition = "left 1s ease";

inner.style.transition = "left 1s ease";

bg.style.transition = "width 1s ease";

}

//只要鼠标松开了,说明此时不需要拖动滑块了,那么就清除鼠标移动和松开事件。

document.onmousemove = null;

document.onmouseup = null;

}

大体实现思路就这些啦!

源码地址:https://github.com/myweiwei/S...

将不断更新完善,期待您的批评指正!

html滑动验证图片,纯js实现图片滑块验证相关推荐

  1. html5轮播怎么自动换图,js实现轮播图效果 纯js实现图片自动切换

    本文实例为大家分享了纯js实现图片自动切换的具体代码,供大家参考,具体内容如下 1.鼠标经过的时候左右两个小按钮会自动弹出,自动播放停止,点击左右小按钮可以切换图片: 2. 鼠标离开,恢复自动播放: ...

  2. 凡科网JS逆向后跳出的滑块验证(base64图片解码之后的破解滑块验证)

    目录 1.前提和大概思路概述 2. 转换思路selenium和验证滑块图片的获取处理 3.总结 1.前提和大概思路概述 只是学习的途中有一些新的发现,分享给大家,希望对你们有帮助. 凡科网的JS逆向的 ...

  3. php 获得图片大小,js获取图片大小_php 或js获取图片大小

    摘要 腾兴网为您分享:php 或js获取图片大小,之了课堂,云集,宜信,学堂在线等软件知识,以及手机东方财富通,航空证券软件,日历星座,大吉大利晚上吃鸡图片,一米鲜,熊猫云,sketchup动画,空文 ...

  4. css3 3d立体三角形展示图片,纯css3实现图片三角形排列

    当今是个读图时代.纯大部分网页或多或少都会用到图片.特别是图片较多的网页.图片的布局和排版就非常重要了.今天要给大写带来一款纯css3实现图片三角形排列.适合一系列的图片.效果图如下: 实现的代码. ...

  5. html静态网站登陆验证,静态页面js加密URL密码验证

    随手写的一个静态HTML页面JS加密URL,密码验证的jQuery插件 点击查看演示 HTML部分: 密码为passcode的链接测试 密码为mm2的链接测试 增加mrel属性,写入真实页面地址前缀, ...

  6. 原生js实现拖动滑块验证

    拖动滑块验证是现在的网站随处可见的,各式各样的拖动法都有. 下面实现的是某宝的拖动滑块验证: <!DOCTYPE html> <html lang="en"> ...

  7. c 服务器二次验证码,V5验证官网 - 基础套餐免费 -滑块验证,行为验证,防刷验证 - 文档...

    平台对接 V5验证前后端对接流程如下图所示: 前后端调用时序图 对接V5验证分为业务网站后台api对接以及业务前端代码引入两部分. 业务网站后台 获取验证Token及验证服务器(getToken) 用 ...

  8. 纯js制作图片轮播效果

    好久没有发博客了,最近都在复习,为了找工作做准备. 前段时间逛了下鼠绘漫画网追海贼王最新漫画,发现他们家的图片轮播效果跟其他网页的图片轮播效果效果不同,看起来更加有趣,于是我尝试了用js复写它. 前提 ...

  9. html下纯JS实现图片压缩、预览、图片Base64转换

    1 function ImgToBase64(file, maxLen, callBack) { 2 var img = new Image(); 3 4 var reader = new FileR ...

  10. html div保存png图片,纯JS实现将DIV中的内容转化为PNG图片

    //1.将div转成svg var data = "data:image/svg+xml," + "" + "" + " &quo ...

最新文章

  1. 利用组策略防止计算机访问共享资源
  2. OpenCV SIFT检测关键点
  3. python连接mysql_Python连接MySQL
  4. QT学习:读写二进制文件
  5. codeforces CF438D The Child and Sequence 线段树
  6. 信息学奥赛C++语言:枪声问题
  7. StalinLocker:一款会在十分钟之后删除文件和数据的勒索软件
  8. Android - Binder机制 - Binder框架总结
  9. JavaWeb之Servlet编程
  10. Linux快速入门教程
  11. 转轮密码机的加解密算法实现
  12. JPEG文件格式分析及举例验证
  13. 人生「价值」的三个关键词|《价值》
  14. 【RTSCon 2022】实时通信与价值赋能
  15. yyyymmddhhmmss时间格式12小时制24小时制区别
  16. PowerBuilder篇(2)——如何连接Oracle数据库
  17. D2FQ(2021 FAST)
  18. 【复习】系统安全知识点归纳总结
  19. Response.Redirect引起System.Threading.ThreadAbortException
  20. 使用AlertDialog自定义布局,解决自定义控件的监听事件无效的办法

热门文章

  1. Spring Boot集成微信扫码登录(实测通过)
  2. Pandas速查手册中文版
  3. 机器学习(一) Eviews下载及安装教程
  4. Logit模型拟合实战案例(Biogeme)
  5. Camshift算法
  6. 三点坐标确定圆心坐标
  7. contos7改分辨率_centos桌面分辨率修改
  8. python动力学_用python学振动分析(一)
  9. 2018华为笔试题2
  10. java计算机毕业设计网上书店进销存管理系统源程序+mysql+系统+lw文档+远程调试