基于ES6制作的滑块验证

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>滑块验证</title>
    <link rel="stylesheet" href="./css/index.css">
    <script src="https://cdn.staticfile.org/jquery/1.12.4/jquery.min.js"></script>
</head>

<body>
    <div class="stage">
        <div class="top">
            <img src="./xia.jpeg" alt="">
            <div class="left"></div>
            <div class="right"></div>
        </div>

        <div class="bot">
            <div class="small">
                <div class="dot"></div>
            </div>
        </div>
    </div>
    <button>刷新</button>
    <script>
        let button = $('button');
        let left = $('.stage .top .left');
        let right = $('.stage .top .right');
        let Top = $('.stage .top');
        let bot = $('.bot')
        let dot =$('.dot')

        let obj = {
            random(jqobj1, jqobj2, jqobj3,jqobj4) {
                let jqobj1_width = jqobj1.width();
                let jqobj1_height = jqobj1.height();
                let jqobj2_width = jqobj2.width();
                let jqobj2_height = jqobj2.height();
                let random_left = Math.ceil(Math.random() * (jqobj1_width / 2 - jqobj2_width+1)) + jqobj1_width / 2 + 'px';
                let random_top = Math.ceil(Math.random() * (jqobj1_height - jqobj2_height+1)) + 'px';
                let random_left2 = Math.ceil(Math.random() * (jqobj1_width / 2 - jqobj2_width+1));
                jqobj2.css({
                    'position': 'absolute'
                });
                jqobj2.css({
                    'left': random_left
                });
                jqobj2.css({
                    'top': random_top
                });
                jqobj3.css({
                    'position': 'absolute'
                });
                jqobj3.css({
                    'top': random_top
                });
                jqobj3.css({
                    'left': random_left2 + 'px'
                });
                jqobj3.css({
                    'backgroundPositionX': -(jqobj2.offset().left - jqobj1.offset().left) + 'px',
                    'backgroundPositionY': -(jqobj2.offset().top - jqobj1.offset().top) + 'px',
                })
                jqobj4.css({
                    'left':random_left2+'px'
                })
            }
        }
        button.click(function () {
            obj.random(Top, right, left,dot);
        })
        let bot1 = document.querySelector('.bot ');
        function foo() {
            left.css({
                'left': (event.clientX - $('.stage').offset().left) + 'px'
            });
            dot.css({
                'left': event.clientX - $('.stage').offset().left + 'px'
            })
            if ((right.offset().left - left.offset().left) <= 5 && (right.offset().left - left
                    .offset().left) >=
                -5) {
                alert('验证成功');
                bot1.removeEventListener('mousemove', foo)
            } else {
                // alert('验证失败')
            }
        }
        bot1.addEventListener('mousedown',function(){
            bot1.addEventListener('mousemove',foo)
        })
        bot1.addEventListener('mouseup',function(){
            bot1.removeEventListener('mousemove',foo);
        })



        
    </script>
</body>

</html>

页面截图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值