При объявлении свойства timers[timer]//undefined
Естественно, при сложении времени выполнения c undefined будет равно NaN. Вот и идет проверка if (!timers[timer]) timers[timer] = 0;
P.S. Наверное не совсем понятно в связи с тем, что практики в таких вещах еще нет, как и у меня:)
вот в первом блоке через градиент, во втором через after. У градиента есть небольшой минус- это плохое сглаживание, зачастую наблюдается при контрасте, а вот через after, такого не нет.Да и after поддерживается IE 9,8 ;)