element-plus/packages/utils/throttleByRaf.ts
赵添 25bebce59d
feat(components): anchor component (#15670)
* feat(components): anchor component

* fix(components): [anchor] marker opacity style

* test(components): [anchor] update snapshots

* fix(components): [anchor] style change and add version tag

* docs(components): [anchor] affix mode demo add affix offset

* fix(components): [anchor] change api

* fix: slot name change

* fix: scrollTo method change

* fix: delete getCurrentAnchor api

* style: text overflow

* docs: change toc to anchor

* refactor: useEventListener

* fix: update

* fix: update
2024-02-27 14:22:26 +08:00

23 lines
352 B
TypeScript

import { cAF, rAF } from './raf'
export function throttleByRaf(cb: (...args: any[]) => void) {
let timer = 0
const throttle = (...args: any[]): void => {
if (timer) {
cAF(timer)
}
timer = rAF(() => {
cb(...args)
timer = 0
})
}
throttle.cancel = () => {
cAF(timer)
timer = 0
}
return throttle
}