Blame view

天文台pc/tianwentai-ui/node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs 1.04 KB
bc518174   王天杨   提交两个项目文件
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
  import { complex } from '../../value/types/complex/index.mjs';
  
  /**
   * Check if a value is animatable. Examples:
   *
   * ✅: 100, "100px", "#fff"
   * ❌: "block", "url(2.jpg)"
   * @param value
   *
   * @internal
   */
  const isAnimatable = (value, name) => {
      // If the list of keys that might be non-animatable grows, replace with Set
      if (name === "zIndex")
          return false;
      // If it's a number or a keyframes array, we can animate it. We might at some point
      // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,
      // but for now lets leave it like this for performance reasons
      if (typeof value === "number" || Array.isArray(value))
          return true;
      if (typeof value === "string" && // It's animatable if we have a string
          (complex.test(value) || value === "0") && // And it contains numbers and/or colors
          !value.startsWith("url(") // Unless it starts with "url("
      ) {
          return true;
      }
      return false;
  };
  
  export { isAnimatable };
  //# sourceMappingURL=is-animatable.mjs.map