如何在没有闪光灯的情况下最初隐藏div?



我有一个向上/向下滑动的div。因为你不能只用CSS让它滑出视野,所以我使用这样的JavaScript:

showHideElement = (element, open) => {
if (open) {
element.style['margin-top'] = 0;
} else {
element.style['margin-top'] = -element.scrollHeight + "px";
}
}

然后,我有一个按钮,用户可以单击该按钮以将div切换为视图或视图之外。这一切都很好用。

问题是我希望能够保存用户的首选项,这样如果他们将div 切换出视图,下次他们刷新页面时,它已经切换出视图。这是使用本地存储完成的。

我遇到的问题是,为了确定margin-top,必须首先渲染元素,以便找到其scrollHeight。当用户刷新页面时,这会导致"闪光",其中他们看到div 滑出视图片刻。

我想要一个解决方案,即当用户加载页面时div 已经不在视图中,但是如果不首先渲染它以确定 scrollHeight,以便可以设置其边距顶部,如何确定这一点?

您需要计算元素高度,这可以通过渲染元素来实现。

您可以尝试使用position: absolutevisibility: hidden。 它不会创建白色矩形。

渲染完成后。您可以重置位置,例如position: unset(或默认值(。

尝试将其设置为display:nonevisibility: hidden

相关内容

  • 没有找到相关文章

最新更新