有两种显示/隐藏元素的方法。首先是$('element').show()
,其中show()
是Jquery中的函数,而$('element').css('visibility', 'visible')
的{{1}}也来自Jquery。哪个更快,使用什么?我认为第一个更快。
答案 0 :(得分:1)
.show()
大致等同于调用.css(“ display”,“ block”),除了将display属性恢复到最初的状态。如果某个元素的显示值为inline,则该元素将被隐藏并显示,它将再次以inline显示。
设置.css('visibility', 'visible')
仅在先前使用visibility: hidden
隐藏的情况下才会显示。 show()
改为更改display
属性。两种方法之间的主要区别在于它们的布局行为(visibility:hidden
元素仍然占据布局中的空间,display:none
元素不会占据布局)。
关于速度/性能:when in doubt, run a benchmark。与您的猜测相反,jQuery的可见性比显示/隐藏要快得多。在香草JS中,这种差异消失了,至少对于简单的文档布局而言是这样。两种方法的速度大致相同(并且都比jQuery方法快得多)。我在链接基准测试中得到的结果:
很难想象在这种情况下,这种性能差异会很明显。布局差异通常是这里的真正决定因素...但是,如果您的应用需要每秒显示和隐藏成千上万个元素,则应针对您的实际代码运行基准测试,并了解是否有关于您的特定细节一种实施方式,将使其中一种更为可取。
答案 1 :(得分:0)
正如注释中指出的,.css()
和.show()
都是jQuery的一部分,两者之间的主要区别在于,第一个为css visibility
属性分配了一个特定的值,其他恢复元素的初始display
值(例如块或内联块)
答案 2 :(得分:0)
在可见性和隐藏/显示中,样式都将作为内联添加
可见度
.css('visibility', 'visible');
,仅可见性将被隐藏。但是显示不会没有。
隐藏/显示
它非常简单,相当于.css("display", "block")
;
哪个更快?
我认为,通常不将其用于此类功能,而用于交互,事件中的功能等。