【发布时间】:2020-12-28 07:51:29
【问题描述】:
我有一个侧面导航栏,里面有一个标题和一些其他信息,标题名称是粘性的,侧面板的高度为 100vh。我希望我的标题 div (sticky-title) 仅在用户向下滚动时(上下文大于 100vh)才具有 box-shadow。换句话说,box-shadow 属性最初不应该存在,但是当用户向下滚动页面时它应该出现。我尝试触发滚动 EventListener,但它占用了主窗口的滚动位置,尽管我希望考虑侧边栏 div 的滚动位置。
下面是代码沙盒游乐场的链接。
【问题讨论】:
-
你看过Element.scrollTop吗?您只需要在侧边栏添加一个ref。
-
@NateLevin 谢谢!我能够使用 scrollTop 并在操场上取得了预期的效果。我将 id 给了我的 div 并在
onScroll上触发了处理程序但是,在我的应用程序中,这个 div 是由 UI 库生成的(并且没有与该 div 关联的 id)。另一个问题是 - 由于这个 div 是由 UI 库获取的,我如何触发onScroll事件? codesandbox.io/s/interesting-fire-9bksx?file=/src/App.js这是工作。 -
对不起,当我指出参考文献时,我才意识到我使用了相同的链接。 This 是我要指向您的链接。您所要做的就是
<Component ref={this.refName} /> -
我正在尝试理解 useRef,但这对我来说有点新。我可以使用 DOM 创建的未出现在渲染函数中的 refs 访问这些元素吗?希望我的要求是有道理的。 @NateLevin
-
您能告诉我们您是如何使用该组件的吗?您可以获取最顶层元素的 ref,然后使用
querySelectors 获取您想要的元素。
标签: javascript html css reactjs