JavaScript实现前端滑块验证效果(代码实例)

青灯夜游
青灯夜游 转载
2018-10-16 17:57:08 2756浏览

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

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">&gt;&gt;</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实现前端滑块验证效果(代码实例)的详细内容,更多请关注php中文网其它相关文章!

声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除