我正在 React Native 中实现一个模态框,并希望创建一个独特的滚动效果,其中模态框具有圆角,可根据滚动位置动态调整。具体来说,我希望模态框看起来像一个可滚动的页面,两端都有圆角 - 查看内容顶部时,顶角应该是圆的;查看底部时,底角应该是圆的;滚动中间部分时,角应该是方形的。这会产生类似于通过窗口查看圆形卡片的效果,其中圆边仅在该部分可见时可见。目标是保持圆形卡片的视觉隐喻,同时提供滚动位置的清晰指示。
所以目前我有类似的东西:
<View style={{borderRadius: 8}}>
<ScrollView>
// ... some content
</ScrollView>
</View>
它的角总是圆的,但如果只在顶部和底部圆,那就太酷了……这似乎可能是一个标准效果,但我以前没有做过太多的前端
我建议让整个模式可滚动,并保持模式主体的角半径,但要回答你的问题,如何通过从上到下滚动使角半径动态化,这是我的答案
ScrollView
卷轴onScroll
这是我的示例代码
这是我的解释
event.nativeEvent.contentOffset.y
获取偏移量 y,这样我们就知道你滚动到了哪里height
和viewHeight
来知道你是否在底部注意:由于我使用 typescript,因此请导入这些类型,如果你只使用 javascript,请删除它们