jQuery's .animate вешает chrome/webkit на ≈10 секунд (загрузка процессора 100%)

Есть в одном проекте следующий код:
  1. $(t)
  2.    .css({'border': '9px solid #D9D9D9'})
  3.    .animate({'border': '9px solid #C62417'}, 'fast')
  4.    .animate({'border': '9px solid #D9D9D9'}, 'fast')
  5.    .animate({'border': '9px solid #C62417'}, 'fast')
  6.    .animate({'border': '9px solid #D9D9D9'}, 'fast')
  7. ;
И вешает он браузер (Google Chrome 11.0.696.28 beta) при вызове события.
В чём же проблема? Как выяснилось, проблема в том, что создаются несколько одинаковых анимаций последовательно.

Решение — заменить одинаковые цвета на практически не отличающиеся, но немного другие:
  1. $(t)
  2.    .css({'border': '9px solid #D9D9D9'})
  3.    .animate({'border': '9px solid #C62417'}, 'fast')
  4.    .animate({'border': '9px solid #D9D9D8'}, 'fast')
  5.    .animate({'border': '9px solid #C62418'}, 'fast')
  6.    .animate({'border': '9px solid #D9D9D9'}, 'fast')
  7. ;
Таким образом анимации становятся разными и проходят с загрузкой процессора ≈1%.

Комментариев нет:

Отправить комментарий