sf-utils2 sf-utils2
版本v3.3.3-beta1
首页
  • 01.快速开始 🔥
  • 02.基础-Base
  • 03.对象-Object
  • 04.数组-Array
  • 05.方法-Function
  • 06.字符串-String
  • 07.数学-Math
  • 08.dom
  • 09.拓展
  • webpack5.x教程学习 (opens new window)
  • 例子
  • 教程 🔥
  • 例子配置
企业级后台模版 (opens new window)
版本v3.3.3-beta1
首页
  • 01.快速开始 🔥
  • 02.基础-Base
  • 03.对象-Object
  • 04.数组-Array
  • 05.方法-Function
  • 06.字符串-String
  • 07.数学-Math
  • 08.dom
  • 09.拓展
  • webpack5.x教程学习 (opens new window)
  • 例子
  • 教程 🔥
  • 例子配置
企业级后台模版 (opens new window)
  • 快速开始

  • 基础-Base

  • 对象-Object

  • 数组-Array✨✨✨

  • 方法-Function

  • 字符串-String

  • 数学-Math

  • 文件-Buffer

  • 节点-dom

    • 序言 👏
    • _constant
      • 1.示例
      • 2.入参说明
      • 3.源码
    • getHttpBlob【获取远程二进制数据流】
    • downloadFile【http下载文件】
    • loadJsSync【单个加载js文件】
    • loadJsOrCssMulSync【批量加载远程css和js文件】
    • getAbsOffsetTop【距离父滚动区域顶部绝对距离】 🔥
    • getParentScrollElement【获取父元素滚动元素】 🔥
    • isScroll【是否是滚动容器】
    • scrollToX【水平滚动到某个具体位置】 🔥
    • scrollToY【垂直滚动到某个具体位置】 🔥
    • scrollToElement【滚动到某个dom元素】 🔥
    • isElementInContainer【元素是否整体在容器内】
    • batchElsPosInContainer【批量 dom 元素在 父的滚动视图位置】 🔥
    • isElementVisibleInViewport【是否可见在某个股东元素上】 🔥
    • observerElementMutation【监听dom元素属性变化】 🔥
    • print【打印】 🔥
    • partialCb【分片加载】
    • domUtils【dom方法操作基础】 🔥
  • 拓展

  • nodejs

目录

_constant

描述

返回常用的兼容性浏览器的 api,兼容),MutationObserver、requestAnimationFrame、cancelAnimationFrame
1、对浏览器 MutationObserver 做兼容处理, 详情使用查看 👉 MutationObserver (opens new window)
2、对原生浏览器自带的 window.requestAnimationFrame 做兼容处理
3、对原生浏览器自带的 window.cancelAnimationFrame 做兼容处理

# 1.示例

import { _constant } from 'sf-utils2'

const { _requestAnimationFrame, _requestAnimationFrame } = _constant

// requestAnimationFrame 示例
_requestAnimationFrame(() => {
  console.log('屏幕hz刷新了')
})

// cancelAnimationFrame 示例
const start = Date.now()
let myReq

function step(timestamp) {
  var progress = timestamp - start
  console.log('打印', progress / 10)
  if (progress < 2000) {
    myReq = _requestAnimationFrame(step)
  }
}
myReq = _requestAnimationFrame(step)
_requestAnimationFrame(myReq)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 2.入参说明

参数 说明 类型 是否必填 默认值

# 3.源码

源码,点开查看 👈
/**
 * 观察DOM树结构发生变化(兼容)
 */
export const _MutationObserver = isBrowser()
  ? window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver
  : undefined


/**
 * 兼容补间动画
 */
export const _requestAnimationFrame = (function () {
  if (isBrowser()) {
    const support = {
      animationFrame: (
        window?.requestAnimationFrame ||
        window?.mozRequestAnimationFrame ||
        window?.webkitRequestAnimationFrame ||
        window?.msRequestAnimationFrame ||
        window?.oRequestAnimationFrame
      ).bind(window)
    }
    return (
      support.animationFrame ||
      function (callback) {
        window?.setTimeout(callback, 1000 / 60)
      }
    )
  }
  return undefined
})()

/**
 * 取消补间动画
 */
export const _cancelAnimationFrame = (function () {
  if (isBrowser()) {
    return (
      window?.cancelAnimationFrame ||
      window?.mozCancelAnimationFrame ||
      window?.cancelRequestAnimationFrame ||
      function (id) {
        clearTimeout(id)
      }
    )
  }
})()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
上次更新: 2025/07/01, 14:52:29
序言 👏
getHttpBlob【获取远程二进制数据流】

← 序言 👏 getHttpBlob【获取远程二进制数据流】→

Theme by Vdoing | Copyright © 2022-2025 bianpengfei
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×