Смотрел исходники jQuery, там очень много кода, начиная fadeOut: { opacity: "hide" },
заканчивая jquery.speed и jquery.animation. Попробовал создать что-то по своей логике - Вышло:
function fadeOut(time){
var opacity,
timelength = '' + time,
i;
d='';
for( var i = 0; i <= timelength.length-2; i++ ){
d+='0';
}
s = timelength.substring(0,1);
timez = s + d;
console.log(timez);
timeOne = '0.'+d+'1';
timec = '0.'+time;
timelength = timelength.length;
Outoverlay: Какая речь может идти о плавности при 200? Ведь это 5-я часть секунды, твои глаза воспринимают всего 24 кадра в секунду, то есть ты видишь 4-5 кадров этой анимации. У меня все сделано очень плавно и намного лучше чем в jquery, так как у меня стоит setTimeout 0. Это значит что функция без задержки начинает выполнятся заново что обеспечивает максимальную точно, чем круче твой процессор тем быстрее, точнее и плавнее все просчитается, но такая точность тут в принципе и не нужна так как глаз не успевает реагировать. Вот можешь сравнить мой fadeout(сверху) и jquery. https://jsfiddle.net/twobomb/6g8u0qsw/7/