【发布时间】:2011-07-04 01:12:42
【问题描述】:
通过将显示设置为无并将可见性设置为隐藏,我设法使 DIV 标记在 JavaScript 中不可见。这个类也可以实现:
.invisible {
display: none;
visibility: hidden;
}
不显示将确保 DIV 框为空,隐藏可见性将确保它不可见。这种方法的问题是当我有内容溢出的可滚动 DIV 或文本区域时,当您设置 display: none 时,某些浏览器会忘记这些元素的滚动位置。有没有更好的方法在不使用 display 属性的情况下使 DIV 不可见?如果可能的话,我宁愿不使用 JavaScript 来记录滚动位置等。
编辑:
在您的帮助下,我设法解决了这个问题,我应用了以下方法:
.invisible {
visibility: hidden;
position: absolute;
top: -9999px;
}
.visible {
visibility: visible;
position: static;
}
我尝试左:-9999px,但这会扩展 IE 中的垂直滚动条...我还将我的 textarea 包裹在另一个 DIV 中并对其应用可见/不可见样式,因为 textarea 否则会失去其滚动位置。我在 iPhone 上的 Chrome、Firefox、IE 和 Safari 中对此进行了测试。请注意,包裹在 textarea 周围的 DIV 似乎对 FF 没有帮助,并且滚动条仍然重置。但是现在可滚动的 DIV 很好。感谢您的帮助!
【问题讨论】:
-
只是一个猜测,但是将它放在容器 div 中并渲染 that div 不可见吗?由于这是一个猜测,我不提供它作为答案。
-
嗯,我以为我的解决方案成功了,但现在我发现 android 浏览器仍然向上滚动...:/
-
啊,我没有安卓……
标签: javascript css html invisible