Home  >  Article  >  Web Front-end  >  JavaScript implements front-end slider verification effect (code example)

JavaScript implements front-end slider verification effect (code example)

青灯夜游
青灯夜游forward
2018-10-16 17:57:083275browse

本篇文章就给大家介绍JavaScript实现前端滑块验证效果的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

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

2、主要用到js事件:

   onmousedown():鼠标按下时响应

   onmousemove():鼠标移动时响应

   onmouseup() : 鼠标弹起时响应

3、获取页面距离的语句:

e.clientX
obj.offsetWidth
obj.offsetLeft

4、代码:

html:

9890cd3db8af2c13be66110fccb4c149
      fc41952c330ae64ceea3973a5826cdb5滑块验证94b3e26ee717c64999d7867364b1b4a3
      01429a2272828cc72204ac2a382a0edc>>94b3e26ee717c64999d7867364b1b4a3
      b67309fe2bee18284b6cceb95d994f7b94b3e26ee717c64999d7867364b1b4a394b3e26ee717c64999d7867364b1b4a3

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教程

The above is the detailed content of JavaScript implements front-end slider verification effect (code example). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:cnblogs.com. If there is any infringement, please contact admin@php.cn delete