♀分享一组利用原生JS实现拖动滑块验证效果

♀在这个组代码中涉及三个方面的知识:

⑴事件处理

⑵添加验证标记

⑶选择器的封装

 

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>验证码</title>
<style>
.box{
position:relative;
width: 200px;
height: 40px;
background: #CCC;
display: block;
margin:150px auto;
}
.btn{
background:#EEE url(1.png) no-repeat;
background-position: center center;
position:absolute;
top:0;
width: 40px;
height: 40px;
z-index: 3;
line-height:40px;
}
.text{
position: absolute;
width: 100%;
margin: 0;
line-height:40px;
text-align: center;
z-index: 2;
}
.bg{
position: absolute;
height: 100%;
background-color: #7ac23c;
z-index: 1;
}
</style>
</head>
<body>
<div class="box">
<!-- 滑块 -->
<div class="btn"></div>
<!-- 文字 -->
<p class="text">请向右滑动滑块</p>
<!-- 背景 -->
<div class="bg"></div>
</div>
<script>
window.onload = function(){
//选择器封装
var fun2 = function(name){//函数表达式
return document.querySelector(name);
};
var btn = fun2(".btn"),//按钮
box = fun2(".box"),//盒子
text = fun2(".text"),//文字
bg = fun2(".bg"),//背景
flag = false;//验证失败 //鼠标按下
//event 对象 事件的状态
btn.onmousedown = function(event){
var e = event || window.event;
var downX = e.clientX; //按下与X轴的点
//移动
btn.onmousemove = function(event){
var moveX = event.clientX - downX; //移入的距离-按下的距离
//移动范围
if(moveX > 0){
this.style.left = moveX + 'px';
bg.style.width = moveX + 'px';
//验证成功
if(moveX >= (box.offsetWidth - this.offsetWidth)){
flag = true; //'验证成功'
text.innerHTML = '验证成功';
text.style.color = '#fff';
btn.onmousemove = null; //清除事件
btn.onmousedown = null; //清除事件
}
}
};
};
//松开
btn.onmouseup = function(){
btn.onmousemove = null; //清除事件
//判断条件
if(flag) return;
this.style.left = 0;
bg.style.width = 0;
}
}
</script>
</body>
</html>

 

效果图:

参考:https://www.bilibili.com/video/av75439023

原生JS实现拖动滑块验证登录效果的更多相关文章

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

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

  2. js 拖动滑块验证

    备注:拖动滑块时尽量平移,chrome浏览器上没有卡顿情况,但是搜狗极速模式和360极速模式都遇到了卡顿,拖不动情况,应是浏览器内部对事件响应速度导致吧. JS代码: ;(function ($,wi ...

  3. jQuery手机触屏拖动滑块验证跳转插件

    HTML: <!DOCTYPE html> <html lang="en"> <head> <title>jQuery手机触屏拖动滑 ...

  4. 原生JS、CSS实现的转盘效果(目前仅支持webkit)

    这是一个原生JS.CSS实现的转盘效果(题目在这:http://www.cnblogs.com/arfeizhang/p/turntable.html),花了半个小时左右,准备睡觉,所以先贴一段代码, ...

  5. jq商品展示图放大镜 and 原生js和html5写的放大镜效果 ~~效果不错

    <!DOCTYPE HTML><html lang="en-US"><head> <meta charset="UTF-8&qu ...

  6. 原生JS实现轮播图的效果

    原生JS实现轮播图的效果: 只要缕清了全局变量index的作用,这个轮播图也就比较容易实现了:另外,为了实现轮这个效果,有几处clearInterval()必须写上.废话不多说,直接上代码,修复了几个 ...

  7. 原生JS 表单提交验证器

    转载:http://www.cnblogs.com/sicd/p/4613628.html 一.前言 最近在开发一个新项目,需要做登陆等一系列的表单提交页面.在经过“缜密”的讨论后,我们决定 不用外部 ...

  8. js移动端滑块验证解锁组件

    本文修改自PC端的js滑块验证组件,PC端使用的是onmousedown,onmouseup,nomousemove.原文找不到了,也是博客园文章,在此感谢广大网友的生产力吧. 说下对插件和组件的理解 ...

  9. 利用原生JS实现网页1920banner图滚动效果

    内容描述:随着PC设备硬件性能的进步和分辨率的不断提高,现在主流网站逐渐开始采用1920banner图,为适应这一趋势,博主设计了1920banner图的滚动效果,代码利用了原生JS实现了1920ba ...

随机推荐

  1. linux 从远程服务器拷贝文件

    1.从服务器复制文件到本地: scp root@192.168.1.100:/data/test.txt /home/myfile/ 2.从服务器复制文件夹到本地: scp -r root@192.1 ...

  2. Pycharm超级好用的快捷键——效率之王

    Pycharm超级好用的快捷键--效率之王 IT界老黑 IT界老黑 带你领略Python的魅力 ​关注他 270 人赞同了该文章 最重要的快捷键 ctrl+shift+A:万能命令行 shift两次: ...

  3. 适合新手的160个creakme(三)

    先跑一下,这个程序应该是有定时器,多久之后自动开启,测试一下输入,序列号以字母方式输入会出现类型不匹配,之后程序自动退出 但是如果以数字方式输入序列号,则会出现,Try Again,所以这里序列号应该 ...

  4. 怎样理解 display:none 和 visibility:hidden

    1. display: none会使元素节点 "消失" , 就像 死亡后灰飞烟灭了. 它是不占位置的. 2. visibility: hidden会使元素节点 "隐藏&q ...

  5. hdu 6082 2017百度之星资格赛

    #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #inclu ...

  6. python+django学习二

    所有模型类型的准备和迁移 在setting.py中添加:AUTH_USER_MODEL = 'users.UserProfile' 继承用户模板 确保子项目的url现在都是空的, 在pycharm的f ...

  7. CORE EF生成ORACLE数据库模型报错问题记录

    需求:最近在新开发一套在LINUX运行的API接口,需要用到net core api框架以及oracle数据库,首先需要解决的就是连接数据库问题,由于是DBFirst 加上之前很多老表不规范,导致了c ...

  8. CSS精灵技术(sprite)

    CSS技术的使用场景:有效的减少了服务器接收和发送请求的次数,css精灵是一种出来网页背景图像的方式,将一个页面设计到的所有零星背景图集中到一张大图中去,然后将大图应用于网页 .通过backgroun ...

  9. asp.net frameworke处理程序的作用

    1 向客户端发送响应的工作都由处理程序完成 2 任何实现System.web.ihttpHandler接口的类都可以作为传入的http请求的目标 3 如果需要重复使用自定义处理程序对象,需要创建自定义 ...

  10. xss part2

    0x01 xss challenge level 6-10 1.1 level 6 test with typical, notice the script has changed change sc ...