按住滑块 拖拽验证html5,【原生】JavaScript 实现滑动拖动验证

本文介绍了一种使用原生JavaScript实现滑动拖动验证的方法,包括滑块验证的HTML结构、样式和JavaScript脚本实现,以及如何处理鼠标和触摸事件,使其在PC和移动端都能正常工作。此外,还提到了使用函数节流优化和添加重置方法的思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bVbA9Yi

通常,我们为了防止用户恶意提交表单,会让用户在提交前完成滑动拖动验证,有时候这也能起到一丝反爬的作用。

实现滑动验证的方式当然不止一种,这里我们直接使用原生 JavaScript 来实现。

现在,你可以在 这里 看到完整的源码,欢迎 Star 哦😄。

原生实现

原生 JavaScript 的实现,主要是通过监听鼠标事件来对 DOM 进行一系列的操作。

滑块验证的结构主要分为四个部分:轨道、滑块、背景和文案,我们可以使用下面的 HTML 结构来表示。

请按住滑块,拖动到最右边

基本思路就是我们给滑块(.slide-block)添加相应的事件,在按下滑块时记录鼠标的当前位置并添加滑动事件,在滑动过程中根据鼠标的移动来移动滑块的位置和增加背景元素(.slide-bg)的宽度,直到移动到轨道(.slide-track)的末端后,改变文案(.slide-text)来提示成功。

样式

在开始写脚本之前可以先来完成一下它们的样式,这让滑块相关的部分看起来更好,也让后面的工作更愉快的进行。/* 样式的注意事项 */

样式的写法就不贴了,相信大家一看就懂,而且会有更好的实现。需要的话,也可以在 Github 上找到。

脚本

现在开始来实现脚本的内容,首先我们对 document.querySelector 方法进行简单的封装以方便后续操作 DOM 元素。function $(selectors) {

return document.querySelector(selectors);

}

然后通过自定义的 _h 函数我们可以很方便的创建上面的 HTML 结构,并添加到文档中。function _h(tagName, propMap = {}, text) {

const ele = document.createElement(tagName);

Object.keys(propMap).forEach(prop => ele.setAttribute(prop, propMap[prop]));

if (text) {

ele.appendChild(document.createTextNode(text));

}

return ele;

}

class SlideUnlock {

constructor(el = "body", options = {}) {

this.$el = $(el)

this.$$isSuccess = false

this.$options = { // 默认配置

tip: '请按住滑块,拖动到最右边',

unlockText: '验证成功',

duration: 500,

...options

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值