当前位置: 首页 > 科技观察

你还在为JS节流吗?CSS还可以防止重复点击按钮

时间:2023-03-14 00:04:04 科技观察

众所周知,functionthrottle是JS中非常常见的一种优化方式,可以有效防止函数执行过于频繁。比如:一个保存按钮,为了避免重复提交或者服务器的考虑,往往需要对点击行为进行一定的限制,比如每300ms只允许提交一次。这个时候我想大部分同学都会直接在网上复制一个油门函数。或者直接引用lodash工具库。btn.addEventListener('click',_.throttle(save,300))其实除了JS方法,CSS也可以很轻松的实现这样的功能,不需要任何框架库,一起来看看吧!一、CSS实现思路分析CSS的实现和JS的思路是不一样的,所以我们需要换个角度来看这个问题。比如这里需要限制点击事件,也就是禁用点击事件。考虑如何禁用该事件。是的,它是指针事件;然后有时间限制。每次点击后需要自动关闭300ms。时间经过恢复之后,那么,与时间和状态恢复相关的特性有哪些呢?没错,就是动画;另外,还需要有一个触发时机,这里是点击行为,所以肯定和伪类:active有关。所以综合分析,实现这样的功能需要pointer-events、animation和:active,那么这些思路怎么串联起来呢?想三秒钟...