时间:2021-07-01 10:21:17 帮助过:8人阅读
1、前端页面应用滑块验证可以防止页面频繁向后台请求数据;
2、主要用到js事件:
onmousedown():鼠标按下时响应
onmousemove():鼠标移动时响应
onmouseup() : 鼠标弹起时响应
3、获取页面距离的语句:
e.clientX obj.offsetWidth obj.offsetLeft
4、代码:
html:
<p class="box">
<p class="txt">滑块验证</p>
<p class="btn">>></p>
<p class="bg"></p></p>css:
*{
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.box{
position: relative;
width:300px;
height:30px;
background-color: #ccc;
margin:20px auto;
font-size:14px;
line-height:30px;
box-sizing:border-box;
z-index:1;
}
.txt{
position: absolute;
left: 50%;
top:0;
transform: translateX(-50%);
color:blue;
z-index:3;
}
.btn{
position: absolute;
top:0;
left: 0;
width:40px;
height:30px;
border:1px solid #ccc;
background-color: #fff;
text-align: center;
line-height: 30px;
cursor: move;
box-sizing: border-box;
z-index:4;
}
.bg{
position: absolute;
left: 0;
top:0;
width:0;
height:30px;
background-color:green;
box-sizing: border-box;
z-index:2;
}js:
window.onload = function(){
var box = document.querySelector(".box"),
txt = document.querySelector(".txt"),
btn = document.querySelector(".btn"),
bg = document.querySelector(".bg"),
end = false;
btn.onmousedown = function(e){
var e = e || window.event;
var point = e.clientX - box.offsetLeft;
btn.onmousemove = function(e){
var moveW = e.clientX - box.offsetLeft - point;
btn.style.left = moveW + "px";
bg.style.width = moveW + "px";
if(btn.offsetLeft<=0){
btn.style.left = "0";
}
if(btn.offsetLeft>=(box.clientWidth - btn.clientWidth)){
btn.style.left = box.clientWidth - btn.clientWidth
txt.innerHTML = "验证完成";
btn.onmousemove = null;
btn.onmousedown = null;
end = true;
}
}
btn.onmouseup = function(){
btn.onmousemove = null;
if(!end){
btn.style.left = "0";
bg.style.width = "0";
}
}
}
}总结:以上就是本篇文的全部内容,代码很简单,大家可以动手试试。希望能对大家的学习有所帮助,更多相关教程请访问JavaScript视频教程,jQuery视频教程,bootstrap教程!
以上就是JavaScript实现前端滑块验证效果(代码实例)的详细内容,更多请关注Gxl网其它相关文章!