Ну, во-первых, абсолютно не используйте jQuery в пределах таймера 50 мс. Если что-то вызывает высокую загрузку процессора, это так. Вместо этого используйте что-то подобное
var hello = $('#hello')[0].style;
function doAnimation() {
//code...
hello.top = curentValueTop + 'px';
hello.left = currentValueLeft + 'px';
hello.fontSize = currentValueFontSize + 'px';
//rest of code...
}
Однако, плавное и последовательное масштабирование шрифтов - это то, что большинство браузеров не справляются хорошо. Поскольку 99% времени текст на веб-странице не попадает вам в лицо, мы этого не замечаем. Возможно, вам повезет больше с изображением текста с максимальным размером шрифта, который вам нужен.
Кроме того, 50 мс ~ = 20 кадров в секунду, что не является особенно плавной частотой кадров для анимаций, проходящих через половину экрана. Если не использовать jQuery, значительно снижает загрузку процессора, вы можете попробовать меньший интервал. Конечно, большинство браузеров плохо справляются с анимацией с высокой частотой кадров.
Да, современные веб-браузеры, изо всех сил пытающиеся делать вещи, с которыми у 20-летних игровых консолей не было проблем, при четверти частоты кадров.
РЕДАКТИРОВАТЬ Попробуйте это http://jsbin.com/oxode/4/edit
Я использовал em
для fontSize
, так как он принимает дробные числа, и использовал таймер 15 мс (около 60 кадров в секунду, если браузер может идти в ногу). Как вы можете видеть, он масштабируется плавнее, хотя вам придется немного отрегулировать настройки анимации ...