your $ items variable is zero in all cases BUT for the company.
var $items = $this.closest($newsFilterRow).find($newsFilterItem); function animate0() { var tmp = $items.splice(0, 56); ....
for empty arrays spliced ββinside an empty array, cheaply there is no memory redistribution or anything else .. but for your case the company you splicing a non-empty array with every animation frame .. that causes lethargy.
Also, consider caching resources and do a DOM lookup outside the animation .. its too many DOM manipulations going on inside the animation.
Firefox probably captures a screenshot of the array for animated operations .. but this is just a wild hunch for the difference in performance.
Kamal
source share