前端成语点击验证的优化

52 篇文章 0 订阅
45 篇文章 0 订阅

对上一篇前端成语点击验证博客进行优化,主要优化事项有:
1.点击时,加上序号显示点击的顺序
2.当验证成功时,不能再点击文字。
在这里插入图片描述
主要优化的代码如下
JS部分:

//事件委托
var verifyArr = [];
var str = null;
var timer = null;
var a = 0;
var idiomBox = document.querySelector('.idiom_box');
clearTimeout(timer)
idiomBox.onclick = function (e) {
  
    e.target ? e.srcElement : e.target;
    console.log(e.pageX);
    console.log(e.offsetX)
    var radio_left = event.pageX-$(this).offset().left-15+'px';
    var radio_top =event.pageY-$(this).offset().top-15+'px'
    if (e.target.tagName == 'SPAN') {
        a++;
        console.log(a)
        let rad=$(`<div class='radio'>${a}</div>`)
        rad.css({
           left:radio_left,
           top:radio_top
        })
        $('.idiom_box').append(rad)
        // console.log(e.target.innerText);
        verifyArr.push(e.target.innerText);
        str = verifyArr.join('')
        if (str.length === randomIdiom.length) {
            if (str == randomIdiom) {
                //    alert('验证成功!!')
                $('.verify_box').html('验证成功');
                idiomBox.onclick = false //验证成功就不能再点了。
            } else {
                $('.verify_box').html('验证失败')
                timer = setTimeout(() => {
                    location.reload()
                }, 1000);
            }
        }
    } else {
        alert('请点击有效区域')
    }
}

CSS部分:

.radio{
	background-color: #1abd6c;
	    color: #fff;
	    z-index: 9999;
	    width: 30px;
	    height: 30px;
	    text-align: center;
	    line-height: 30px;
	    border-radius: 50%;
	    position: absolute;
	   z-index: 10;
	   line-height: 30px;
	   color: white;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值