В последнее время я трачу некоторое время на чтение советов по оптимизации jQuery, которые, безусловно, помогли повысить производительность моих скриптов.
Тем не менее, у меня есть специальный раздел новостей на моем сайте, который при наведении курсора мыши перемещает дополнительную информацию на место, и этот раздел не очень хорошо работает ни в одном браузере, кроме Safari (и, вероятно, Chrome тоже).
Причина этого, я полагаю, заключается в том, что перед анимацией происходит довольно много обхода DOM и вычислений для каждого события mouseover / mouseout.
У меня простой вопрос: есть ли способ оптимизировать приведенный ниже код, чтобы анимация работала более плавно?
$('#featuredSide .featuredBox,#featuredBottom .featuredBox,#archiveVideos .featuredBox').hover(function(){
var boxHeight = parseInt($(this).css('height'))-8;
var bottomOrSide = $(this).parents("div[id^='featured']").attr("id")
var captionPos = 76;
var captionHeight = parseInt($(this).find(".videoCaption").css('height'));
var animateTo = boxHeight-captionHeight;
$(".videoCaption", this).stop().animate({top:animateTo + 'px'},{queue:false,duration:160});
}, function() {
$(".videoCaption", this).stop().animate({top:captionPos},{queue:false,duration:100});
});
Поскольку сайт, над которым я работаю, еще не опубликован, я загрузил снимок экрана с разделом новостей , чтобы дать вам представление о том, как он выглядит.
Спасибо!