【发布时间】:2019-03-22 07:17:45
【问题描述】:
是否可以使元素具有固定位置,但阻止它随页面滚动?
我的问题:我正在构建一个工具提示,我根据页面上可用的空间来动态确定放置位置。它需要在其目标元素旁边的所有其他内容上弹出,并且不占用空间。所以我最初认为位置是绝对的。
但是绝对位置是基于元素的父包装。我的页面被包装在多个我无法控制的包装器中(在 Salesforce 上,但这不一定是 Salesforce 特定的问题)。
所以我需要将它定位在视口之外,而不是依赖于它最终被包裹在哪个父级中。所以位置固定,效果很好。
唯一的问题是位置固定使元素随页面滚动。我真的不希望工具提示在用户滚动时跟随用户。
由于无法控制父包装器,我觉得我需要根据视口保持位置。但我发现的只是位置固定,所以不确定是否存在阻止元素随页面滚动的方法。
【问题讨论】:
-
从父母中删除
postion:relative;并将其添加到正文中。这将帮助您在视口上添加工具提示。 -
我无法联系到将被包裹的父母。
-
如果您发布一些代码以更好地理解您的问题,那就太好了;如果你不能然后发布正在发生的事情的 gif 图像(问题)..
-
有多个库,例如 'PopperJS' 和 'Tippy' 实现了这一点。基本上,他们将工具提示附加到正文,并根据调用它的目标元素计算位置。你也可以通过它们。
-
好吧,
position:fixed实际上意味着它不应该随着页面滚动(就像这个页面上的标题)......无论如何,你可以监听滚动事件并将工具提示隐藏在那一点。不确定我是否见过用户滚动时没有关闭的工具提示。
标签: javascript html css