欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

前端滑块验证

程序员文章站 2024-01-02 15:52:52
1.前端页面应用滑块验证可以防止页面频繁向后台请求数据; 2.主要用到js事件: onmousedown() 鼠标按下时响应 onmousemove() 鼠标移动时响应 onmouseup() 鼠标弹起时响应 3.获取页面距离: e.clientX obj.offsetWidth obj.offse ......

1.前端页面应用滑块验证可以防止页面频繁向后台请求数据;

2.主要用到js事件:

   onmousedown()   鼠标按下时响应

   onmousemove()   鼠标移动时响应

   onmouseup()        鼠标弹起时响应

3.获取页面距离:

   e.clientx

   obj.offsetwidth

   obj.offsetleft

4.代码:

html:

<div class="box">
      <div class="txt">滑块验证</div>
      <div class="btn">&gt;&gt;</div>
      <div class="bg"></div>
</div>

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";
                }
            }
        }
    }

5.显示
前端滑块验证

 

 

 

上一篇:

下一篇: