@bsky.app/expo-scroll-edge-effect

中文文档
0.1.11发布于 2026/11/02MITTypeScriptCommonJS零依赖构建来源已验证近 30 天下载 32.2万

Expo module for UIScrollEdgeElementContainerInteraction

原始使用文档
文档目录9 节
  1. Installation
  2. Usage
  3. With Reanimated
  4. API
  5. <ScrollEdgeEffectProvider>
  6. useScrollEdgeEffectRef()
  7. <ScrollEdgeEffect>
  8. Platform support
  9. License

@bsky.app/expo-scroll-edge-effect

An Expo module wrapping UIScrollEdgeElementContainerInteraction (iOS 26+). Allows views overlaying the edges of a scroll view to automatically influence the scroll edge effect shape.

On older iOS versions and other platforms, the components render as plain Views.

https://github.com/user-attachments/assets/3c6e3ed1-b785-48cc-9d2e-63dfadb45ad2

Installation

npm install @bsky.app/expo-scroll-edge-effect

Then run npx pod-install to link the native module.

Requires expo to be configured in your project.

Usage

import {
  ScrollEdgeEffectProvider,
  ScrollEdgeEffect,
  useScrollEdgeEffectRef,
} from "@bsky.app/expo-scroll-edge-effect";

function Screen() {
  return (
    <ScrollEdgeEffectProvider>
      <ScrollEdgeEffect edge="top">
        <MyHeader />
      </ScrollEdgeEffect>

      <ScrollContent />

      <ScrollEdgeEffect edge="bottom">
        <MyFooter />
      </ScrollEdgeEffect>
    </ScrollEdgeEffectProvider>
  );
}

function ScrollContent() {
  const scrollEdgeRef = useScrollEdgeEffectRef();

  return (
    <ScrollView ref={scrollEdgeRef}>
      {/* ... */}
    </ScrollView>
  );
}

With Reanimated

The ref returned by useScrollEdgeEffectRef is a callback ref, so it works with mergeRefs:

const animatedRef = useAnimatedRef();
const scrollEdgeRef = useScrollEdgeEffectRef();

<Animated.ScrollView ref={mergeRefs([animatedRef, scrollEdgeRef])} />

API

<ScrollEdgeEffectProvider>

Wraps your screen content. Holds the scroll view reference in context so that <ScrollEdgeEffect> components can attach to it.

useScrollEdgeEffectRef()

Returns a callback ref to pass to your ScrollView. Must be used within a <ScrollEdgeEffectProvider>.

<ScrollEdgeEffect>

Wraps content that overlays a scroll view edge. On iOS 26+, descendant views (labels, buttons, images, etc.) automatically influence the scroll edge effect shape.

PropTypeDescription
edge'top' | 'bottom' | 'left' | 'right'Which scroll view edge this content overlays.
effect'automatic' | 'hard' | 'soft' | 'hidden'Edge effect style. Defaults to 'automatic'. 'hidden' disables the interaction entirely.
fallbackStyleViewStyleAdditional style applied on non-iOS platforms and iOS < 26.
...viewPropsViewPropsAll standard View props are forwarded.

Platform support

PlatformBehavior
iOS 26+Native UIScrollEdgeElementContainerInteraction
iOS < 26Renders as a plain View (no crash)
Android / WebRenders as a plain View

License

MIT

版本与发布记录

@bsky.app/expo-scroll-edge-effect 共发布 7 个版本,首次发布于 2026/03/10;过去 12 个月发布了 7 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.11latest2026/11/026 天前
0.1.102026/09/211 个月前
0.1.92026/07/084 个月前
0.1.42026/03/127 个月前
0.1.32026/03/107 个月前
0.1.22026/03/107 个月前

关于 @bsky.app/expo-scroll-edge-effect 的常见问题

@bsky.app/expo-scroll-edge-effect 是什么?

Expo module for UIScrollEdgeElementContainerInteraction

如何安装 @bsky.app/expo-scroll-edge-effect?

在项目目录运行 npm install @bsky.app/expo-scroll-edge-effect,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:expo(*)、react(*)、react-native(*)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@bsky.app/expo-scroll-edge-effect 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bsky.app/expo-scroll-edge-effect 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@bsky.app/expo-scroll-edge-effect 可以商用吗?

@bsky.app/expo-scroll-edge-effect 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@bsky.app/expo-scroll-edge-effect 的下载量有多少?

根据 npm 官方下载统计,@bsky.app/expo-scroll-edge-effect 在 2026/10/09 – 2026/11/07 这 30 天内被下载 322,266 次,日均约 10,742 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bsky.app/expo-scroll-edge-effect 还在维护吗?

最新版本 0.1.11 发布于 2026/11/02(6 天前);至今共发布 7 个版本,其中过去 12 个月发布了 7 个;首次发布于 2026/03/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。