2012-05-23 93 views
0

我有一个简单的图片集。当第一个图像可见时,左箭头被隐藏,当最后一个图像可见时,右箭头被隐藏。哪一个是最快的方法

隐藏和显示我使用隐藏和显示方法的箭头。但其他方法也可以工作,例如:fadeIn()/淡出和css('visibility','hidden')/ css('visibility','visible')

我想知道哪个是最灵活的方法。最快的国家之一

感谢所有

+0

[过早优化是万恶之源](http://c2.com/cgi/wiki?PrematureOptimization) –

回答

2

从​​.hide()不使用动画时。

这大致相当于调用的CSS(“显示”,“无”),不同之处在于该显示属性的值被保存在jQuery的数据缓存,以便显示以后可以恢复到其初始值。如果一个元素的显示值为内联,然后被隐藏并显示,它将再次以内联方式显示。

淡入()和淡出()的使用动画和速度会变慢并且需要更多的处理根据THIS TEST

1

(就像隐藏()设定针对它的时间。) - hide()稍微更快然后​​(因为它不使用动画)。但如果你想以最快的方式使用原生js命令(例如document.getElementById('a').style.display = 'none';),则速度会提高80%-90%。

+0

我不认为测试是正确的。由于您在第一次执行'$(“#a”)。hide()'时隐藏了元素,所有其他语句('$(“#a”)。hide()','$(“#a” ).fadeout()')不会做任何事情。我认为jQuery做了一些优化,如果元素不可见,则不会动画。此外,我不确定您是否可以通过这种方式正确地对这些动画进行基准测试(因为它们是异步的)。更好的测试可能是http://jsperf.com/hide-test2/2,但是这仍然没有考虑到动画持续时间。 –