最近、スクリプトのパフォーマンスを向上させるのに確かに役立ったjQuery最適化のヒントについて読むことに時間を費やしています。
ただし、私のサイトにはこの注目のニュースセクションがあり、マウスをホバーするとより多くの情報が所定の位置にスライドします。このセクションは、Safari(およびおそらくChromeも)以外のブラウザではあまりうまく機能しません。
この理由は、アニメーション化する前に、すべてのマウスオーバー/マウスアウトイベントでかなりのDOMトラバースと計算を実行しているためだと思います。
私の質問は簡単です:アニメーションがよりスムーズに実行されるように、以下のコードを最適化する方法はありますか?
$('#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});
});
私が取り組んでいるサイトはまだ公開されていないので、ニュースセクションのスクリーンショットをアップロードして、それがどのように見えるかを示します。
ありがとう!