簡而言之:
爲什麼是這樣的:瀏覽器滾動動畫性能
$('body').animate({scrollLeft: 1000});
遠比這個要快得多:
$('body').animate({"margin-left": 1000});
?
背景:
我正在一個有動畫滾動的網站上工作。例如:當用戶點擊一個鏈接時,我會觸發一個爲動畫滾動條添加動畫的javascript。同樣的事情也到這個網站:
http://www.fashionphotographer.it/
我對這個問題先取是動畫margin-left
使用jQuery.animate但這被證明是非常慢(我的網站是非常沉重的內容)。之後,我嘗試使用CSS3甚至-webkit轉換對絕對元素的left
進行動畫處理。所有解決方案都很慢。
我最後的嘗試是使用jQuery來爲滾動條設置動畫,並且這證明是迄今爲止最好的解決方案。
我的問題是:什麼樣的優化是瀏覽器(我使用Chrome)在引擎蓋下做動畫滾動條的最佳解決方案?
由於客戶投訴,我昨晚注意到了這一點。他使用的是鉻,我有一個.animate({opacity:0});他聲稱當他試圖滾動頁面時該頁面無法使用。我暫時將其刪除。我也在移動dom元素。所以我想它的迴流...... – Jason 2011-12-16 15:26:21