我已经成功地通过将display设置为none和visibility设置为hidden使一个DIV标签在JavaScript中变得不可见。也可以使用以下类实现:
.invisible {
display: none;
visibility: hidden;
}
使用display: none会确保DIV元素为空,visibility: hidden会确保它不可见。这种方法的问题在于当我有可滚动的DIV或带有溢出内容的文本区域时,当您设置display: none时,一些浏览器会忘记这些元素的滚动位置。是否有更好的方法使一个DIV不可见而不使用display属性?如果可能的话,我宁愿不使用JavaScript记录滚动位置等。
编辑:
在你们的帮助下我设法解决了这个问题,我采用了以下方法:
.invisible {
visibility: hidden;
position: absolute;
top: -9999px;
}
.visible {
visibility: visible;
position: static;
}
我尝试使用left: -9999px,但这会在IE中扩展垂直滚动条...我还将文本区域包装在另一个DIV中,并对其应用可见/不可见样式,因为否则文本区域将失去滚动位置。 我在Chrome,Firefox,IE和Safari上的iPhone上进行了测试。请注意,在文本区域周围包裹的DIV似乎并没有帮助FF,滚动条仍然重置。但可滚动的DIV现在很好。感谢您的帮助!