framer-motion
Version:
A simple and powerful JavaScript animation library
1 lines • 1.76 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../src/render/dom/scroll/index.ts"],"sourcesContent":["import { addToScope, AnimationPlaybackControls, bindToScope } from \"motion-dom\"\nimport { noop } from \"motion-utils\"\nimport { attachToAnimation } from \"./attach-animation\"\nimport { scrollInfo } from \"./track\"\nimport { OnScroll, ScrollOptions } from \"./types\"\n\nexport function scroll(\n onScroll: OnScroll | AnimationPlaybackControls,\n {\n axis = \"y\",\n source,\n container = document.scrollingElement as Element,\n ...options\n }: ScrollOptions = {}\n): VoidFunction {\n if (!container) return noop as VoidFunction\n\n const optionsWithDefaults = {\n axis,\n container: source || container,\n ...options,\n }\n\n if (typeof onScroll === \"function\") {\n const callback = bindToScope(onScroll)\n return addToScope(\n scrollInfo(\n (info) => callback(info[axis].progress, info),\n optionsWithDefaults\n )\n )\n }\n\n return addToScope(attachToAnimation(onScroll, optionsWithDefaults))\n}\n"],"names":[],"mappings":";;;;;AAMM,SAAU,MAAM,CAClB,QAA8C,EAC9C,EACI,IAAI,GAAG,GAAG,EACV,MAAM,EACN,SAAS,GAAG,QAAQ,CAAC,gBAA2B,EAChD,GAAG,OAAO,EAAA,GACK,EAAE,EAAA;AAErB,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,IAAoB;AAE3C,IAAA,MAAM,mBAAmB,GAAG;QACxB,IAAI;QACJ,SAAS,EAAE,MAAM,IAAI,SAAS;AAC9B,QAAA,GAAG,OAAO;KACb;AAED,IAAA,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AAChC,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QACtC,OAAO,UAAU,CACb,UAAU,CACN,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAC7C,mBAAmB,CACtB,CACJ;IACL;IAEA,OAAO,UAAU,CAAC,iBAAiB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AACvE;;;;"}