;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Fluminense

Flu perde fôlego com Roger, e eliminação pressiona diretoria por mudança

Internamente, pressionado Roger Machado não inspira a mesma confiança no Fluminense - Mailson Santana/Fluminense FC
Internamente, pressionado Roger Machado não inspira a mesma confiança no Fluminense Imagem: Mailson Santana/Fluminense FC

Caio Blois

Do UOL, no Rio de Janeiro

20/08/2021 04h00

Se a expectativa era por uma semifinal de brasileiros e um clássico Fla-Flu na Libertadores, faltou combinar com o Fluminense. Em queda vertiginosa de desempenho, o Tricolor foi eliminado pelo Barcelona-EQU, e vê a pressão aumentar em Roger Machado.

O técnico mantém a narrativa de se fechar ao externo, mas o que acontece fora das paredes de Laranjeiras há algum tempo se impõe ao lado de dentro. Internamente, o trabalho é mal avaliado por muitas pessoas no CT Carlos Castilho, que não veem mais chances de evolução do elenco nas mãos do atual comandante.

"Me preocupo internamente em trabalhar, buscar soluções, sabia que seria um jogo importante, o mais importante do ano até esse momento. As pressões externas são inerentes às expectativas de tudo que fizemos na Libertadores até esse momento, em cima da história e do tamanho do clube. Eu não me preocupo com o externo, eu trabalho internamente para levar a campo os atletas na sua melhor forma", se esquivou, em coletiva.

Na 15ª colocação do Campeonato Brasileiro e com difícil confronto contra o Atlético-MG pela Copa do Brasil pela frente, a diretoria se vê pressionada por um ajuste de rota. Uma mudança de rumo é estudada há dias, ainda que vagarosamente, e nos bastidores do clube, a queda do treinador não parece mais questão de "se", mas de "quando".

Na Libertadores, o empate em Guayaquil teve atuação melhor do que nas últimas partidas, mas insuficiente para a vitória. O resultado expôs as fraquezas do Tricolor. Desfalcado no ataque, o time demonstrava pobreza no setor ofensivo, e não havia alternativas para mudar o panorama. Em vez dos jovens John Kennedy e Matheus Martins, preteridos até do banco, havia apenas veteranos em baixa no banco de reserva.

As lesões de Ganso e Yago, a bem da verdade, atrapalharam a estratégia. Com os dois em campo, o Flu foi melhor. Ainda assim, muito pouco para almejar uma semifinal de Libertadores, mesmo que o nível do adversário abrisse brechas para isso. Após o jogo, Roger insistiu em uma narrativa distante da realidade: a de que o Tricolor não é capaz de fazer mais do que o que vem fazendo.

"Nós estamos nas quartas de final de uma competição, não vai haver inúmeras oportunidades em jogos decisivos como esse", resumiu.

Na verdade, os semifinalistas Flamengo, Palmeiras e Atlético-MG tiveram, respectivamente, 17, 16 e 12 chances claras de gols nas quartas de final da Libertadores. O Fluminense teve apenas seis, contra um adversário inferior ao que o trio de semifinalistas enfrentou.

Ao insistir em seus erros, opções e alternativas, Roger Machado fechou-se não só ao "externo", mas também ao que a realidade o impôs. Sem alternativas, novas ideias e testes, seu Fluminense não se tornou apenas previsível, mas um remendo da competitiva equipe de 2020, que defendia bem sua área e era efetiva nas finalizações. Nem mesmo a bola parada eficiente, ainda que com as mesmas peças, se manteve uma virtude da equipe.

Inofensivo na frente e errático atrás, o Tricolor precisa de uma reviravolta para não deixar sua temporada ir do céu ao inferno em pouco tempo. Os próximos dias serão decisivos para Roger, que vê sua situação se complicar no comando da equipe, sem resultados ou desempenho que justifiquem a manutenção após a derrocada nas semanas decisivas de agosto.

O presidente Mário Bittencourt e o diretor Paulo Angioni, que estiveram em Guayaquil, voltarão o Rio junto com a delegação e se reunirão novamente para tratar de assuntos do futebol, como é praxe. Uma mudança de técnico será a novidade imperativa na pauta do encontro.

Fluminense