2012-05-23 98 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,但是這仍然沒有考慮到動畫持續時間。 –