2013-07-12 50 views
2

對於一個項目,我想模擬css :hover僞類,使用.hover類,我在mouseovermouseout事件上添加/刪除。
問題是,這會對性能產生多大影響,差異有多大?
以下是一個示例:link使用mouseover和mouseout代替:hover

回答

0

性能取決於個人用戶的計算機。除非JavaScript被禁用,否則您很可能在任何機器上看不到任何區別。您可能希望考慮包含一些CSS,在用戶禁用JavaScript的情況下,這些CSS將會對此進行補償。

2

通過重寫CSS可以在JavaScript中執行的操作,您希望完成什麼?

JavaScript幾乎總是比CSS慢。在這種非常簡單的情況下,它可能不會引起注意。但是,當你開始收穫很多時(並考慮一個典型站點的鏈接數量;例如,StackOverflow在此頁面上大約有100個鏈接,它會很快加起來),那麼您將開始顯着慢-downs。

一個主要的原因,因爲這是你要火了JavaScript的處理器,找到所有匹配的JavaScript搜索的元素,以及事件偵聽器添加到它。另外,JavaScript沒有像CSS那樣的硬件加速訪問權限。當你開始包括CSS可以做的轉換和轉換時,這就開始成爲一個主要因素。

不要忘記考慮開發和維護時間。大多數人會希望你的陳述行爲在CSS中。當他們沒有在那裏找到它時,他們將不得不四處挖掘,然後通過JavaScript代碼進行精神分析,以找到您的僞懸停代碼。這需要花費更多的時間和精力在其他方面。