Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在没有闪光灯的情况下隐藏div?_Javascript_Html_Css_Css Transitions - Fatal编程技术网

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

Javascript 如何在没有闪光灯的情况下隐藏div?,javascript,html,css,css-transitions,Javascript,Html,Css,Css Transitions,我有一个向上/向下滑动分区。如果只使用CSS将其滑出视图,我将使用如下JavaScript: showHideElement = (element, open) => { if (open) { element.style['margin-top'] = 0; } else { element.style['margin-top'] = -element.scrollHeight + "px"; } } 然后,我有一个按钮,用户可以单击该按钮来切换视图中的di

我有一个向上/向下滑动分区。如果只使用CSS将其滑出视图,我将使用如下JavaScript:

showHideElement = (element, open) => {
  if (open) {
    element.style['margin-top'] = 0;
  } else {
    element.style['margin-top'] = -element.scrollHeight + "px";
  }
}
然后,我有一个按钮,用户可以单击该按钮来切换视图中的div或视图中的div。这一切都很好

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

我遇到的问题是,为了确定
边距顶部
,必须首先渲染元素,以便找到其
滚动高度
。当用户刷新页面时,这会导致“闪烁”,其中他们会看到div暂时滑出视图


我想要一个解决方案,当用户加载页面时,div已经看不见了,但是如果不先渲染它来确定滚动高度,以便设置其边距顶部,如何确定它呢?

尝试将其设置为
显示:无
可见性:隐藏
您需要计算元素高度,这可以通过渲染元素来实现

您可以使用
位置:绝对
尝试
可见性:隐藏
。
它不会创建白色矩形


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

display:none
不工作,因为此时测量的高度(scrollHeight)为0<代码>可见性:隐藏
不起作用,因为它是一个白色的矩形,而不是闪烁。
可见性:隐藏;不透明度:0
相反,您可以在操作之前显示加载程序或隐藏元素。@HarishSharma很遗憾,这似乎不起作用。请参阅我对lizzors的回复。很久以前我就这么做了,我为列表上的显示/隐藏操作实现了平滑动画。它消除了突然的闪光。我不明白你在说什么。我应该有一个旋转器或者其他什么?“我真的宁愿解决这个问题。”哈里什·夏尔马说。如果你愿意的话,你可以加上它作为答案,我会接受的。