uvue.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // @ts-nocheck
  2. // 是否支持被动事件监听
  3. export const supportsPassive = true;
  4. // #ifdef uniVersion < 4.25
  5. // 请求动画帧
  6. export function raf(fn: TimerCallback): number {
  7. return setTimeout(fn, 1000 / 60);
  8. }
  9. // 取消动画帧
  10. export function cancelRaf(id: number) {
  11. clearTimeout(id);
  12. }
  13. // 双倍动画帧
  14. export function doubleRaf(fn: TimerCallback): void {
  15. raf(():number => raf(fn)); // 在下一帧回调中再次请求动画帧,实现双倍动画帧效果
  16. }
  17. // #endif
  18. // #ifdef uniVersion >= 4.25
  19. // 请求动画帧
  20. export function raf(fn: UniAnimationFrameCallback): number
  21. export function raf(fn: UniAnimationFrameCallbackWithNoArgument): number
  22. export function raf(fn: any): number {
  23. if(typeof fn == 'UniAnimationFrameCallback') {
  24. return requestAnimationFrame(fn as UniAnimationFrameCallback);
  25. } else {
  26. return requestAnimationFrame(fn as UniAnimationFrameCallbackWithNoArgument);
  27. }
  28. }
  29. // 取消动画帧
  30. export function cancelRaf(id: number) {
  31. cancelAnimationFrame(id);
  32. }
  33. // 双倍动画帧
  34. export function doubleRaf(fn: UniAnimationFrameCallback): void
  35. export function doubleRaf(fn: UniAnimationFrameCallbackWithNoArgument): void
  36. export function doubleRaf(fn: any): void {
  37. raf(():number => raf(fn)); // 在下一帧回调中再次请求动画帧,实现双倍动画帧效果
  38. }
  39. // #endif