源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

[CSS] CSS利用pointer-events防止重复点击的方法实例

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2017-8-7 11:47:33 | 显示全部楼层 |阅读模式
这篇文章主要给大家介绍了关于CSS利用pointer-events防止重复点击的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者理解具有一定的参考学习价值,感兴趣的朋友们下面跟着小编来一起学习学习吧。

前言

我们在前端总会遇到重复点击的问题,由于网络的原因,用户不能及时得到反馈,就很可能会选择再点击一次,

所以这个时候就会向后端发送两次重复的请求,这样就很可能会导致严重的问题,尤其是在发 post的时候,就可能会增加两条重复的数据。

之前我一般遇到这种情况都会在 js 的请求前做一个 canRequest 变量,由于请求是异步的,所以在请求开始后我就会将该变量设置为 false, 当请求结束后,无论成功还是失败都要将该变量设置为 true, 简单代码如下:

var canRequest = true
function postData () {
  if (!canRequest) return
  fetch(url)
  .then(res => {
    canRequest = true  
  })
  .catch(e => {
    canRequest = true
  })
  canRequest = false
}

这样做并没有什么毛病,不过考虑到一般点击后还需要将按钮置灰,所以我找到了个从 css 层面上就阻止重复点击的方式。

下面是个获取短信验证码的示例:

<div id="count">获取验证码</div>
body {
    display: flex;
    height: 100vh;
}
#count {
    margin: auto;
    padding: 10px;
    width: 100px;
    border: 1px solid;
    text-align: center;
    cursor: pointer;
    border-radius: 4px;
}
.disable {
    pointer-events: none;
    color: #666;
}
const count = document.getElementById('count')
const tip = count.textContent
count.onclick = e => {
    console.log(111)
    count.classList.add('disable')
    count.textContent = 10
    var id = setInterval(() => {
        count.textContent--
        if (count.textContent <= 0) {
            count.classList.remove('disable')
            count.textContent = tip
            clearInterval(id)
        }
    }, 1000)
}

注意: 对于  pointer-events 不了解的请查看这篇文章

demo链接:点击这里

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

回复

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-8-9 09:56:40 | 显示全部楼层
还不错啊
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

55

积分

注册会员

Rank: 2

积分
55
发表于 2022-9-20 17:13:46 | 显示全部楼层
你们谁看了弄洒了可能
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

87

积分

注册会员

Rank: 2

积分
87
发表于 2022-12-13 01:06:20 | 显示全部楼层
需要很久了终于找到了
回复 支持 反对

使用道具 举报

6

主题

2万

回帖

425

积分

中级会员

Rank: 3Rank: 3

积分
425
发表于 2023-1-25 15:48:15 | 显示全部楼层
还有人在不。。。。。。。。。。啊
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

316

积分

中级会员

Rank: 3Rank: 3

积分
316
发表于 2023-2-22 16:35:41 | 显示全部楼层
hi哦和烦恼农家女
回复 支持 反对

使用道具 举报

2

主题

1万

回帖

146

积分

注册会员

Rank: 2

积分
146
发表于 2023-3-26 05:58:10 | 显示全部楼层
人都不在了啊 啊
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

316

积分

中级会员

Rank: 3Rank: 3

积分
316
发表于 2023-9-16 20:21:46 | 显示全部楼层
你们谁看了弄洒了可能
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

155

积分

注册会员

Rank: 2

积分
155
发表于 2023-11-10 04:34:38 | 显示全部楼层
加快速度很快就撒谎
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2023-11-11 16:51:05 | 显示全部楼层
很不错的源码论坛
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-24 00:08 , Processed in 0.069137 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表