Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 $(';元素';).show();vs$(';element';).css(';可见性';,';可见';):哪个更好使用?_Javascript_Jquery_Css_Function - Fatal编程技术网

Javascript $(';元素';).show();vs$(';element';).css(';可见性';,';可见';):哪个更好使用?

Javascript $(';元素';).show();vs$(';element';).css(';可见性';,';可见';):哪个更好使用?,javascript,jquery,css,function,Javascript,Jquery,Css,Function,显示/隐藏元素有两种方式。首先是$('element').show(),其中show()是Jquery中的一个函数,而$('element').css('visibility','visible')其中css()也来自Jquery。哪个更快,用什么?我认为第一个更快 .show()大致相当于调用.css(“display”、“block”),只是display属性恢复为最初的状态。如果某个元素的显示值为inline,则隐藏并显示后,它将再次以inline显示 设置.css('visibilit

显示/隐藏元素有两种方式。首先是
$('element').show()
,其中
show()
是Jquery中的一个函数,而
$('element').css('visibility','visible')
其中
css()
也来自Jquery。哪个更快,用什么?我认为第一个更快

.show()
大致相当于调用.css(“display”、“block”),只是display属性恢复为最初的状态。如果某个元素的显示值为inline,则隐藏并显示后,它将再次以inline显示

设置
.css('visibility','visible')
仅当元素以前使用
visibility:hidden
隐藏时才会显示该元素
show()
改为更改
display
属性。这两种方法之间的关键区别在于它们的布局行为(
可见性:隐藏的
元素仍然占用布局中的空间,
显示:无
元素不占用空间)

至于速度/性能:。与您的猜测相反,jQuery的可见性要比显示/隐藏快得多。在vanilla JS中,这种差异消失了,至少对于简单的文档布局是如此;两种方法的速度大致相同(并且都比任何一种jQuery方法都快得多)。我在链接基准上的结果:

  • jQuery显示/隐藏x 20913运算/秒±2.49%(采样75次运行)
  • jQuery可见性x 121719次/秒±1.46%(抽样81次)
  • 普通显示/隐藏x 453574次/秒±2.51%(采样85次)
  • 香草型能见度x 450610次/秒±1.98%(取样89次)

很难想象在任何可能的情况下,这种性能上的差异会是显著的;布局差异通常是这里真正的决定因素。。。但是,如果你的应用程序每秒需要显示和隐藏数以万计的元素,你应该根据实际代码运行一个基准测试,并找出是否有关于你的实现的具体细节可以使其中一个更可取。

正如注释中指出的那样,
.css()
.show()
都是jQuery的一部分,这两种方法的主要区别在于,第一种方法为css
visibility
属性指定一个特定值,另一种方法恢复元素的初始
显示值(例如块或内联块)



在“可见性”和“隐藏/显示”中,样式都将作为内联添加

可见性
.css('visibility','visible'),只有可见性将被隐藏。但显示将不会是无



隐藏/显示
它非常简单,相当于
.css(“显示”、“块”)



哪个更快?

我认为,它通常不用于此类功能,但用于交互、事件中的功能等。

这两个
$.fn.css
$.fn.show
都来自jQuery。不确定“连接到jQuery”是什么意思<代码>显示()
设置
显示
,而不是
可见性
。如果您不关心差异,请使用
show()
hide()
,因为它们较短且易于阅读。@Ry-好的,我编辑过。@Ry-那么速度呢?我认为
.show()
会更快,因为它是特定于display属性的,而
.css()
是所有属性的通用函数带宽是与客户端性能完全不同的问题——一旦jQuery本身下载完毕并且客户端脚本正在运行,网络状况就无关紧要了(除非您开始进行ajax或其他网络调用)。