;(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

Rafael Reis

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Fernandinho faz mistério, mas deve deixar o Manchester City após Champions

Após fazer sucesso no Manchester City, Fernandinho deve ter uma nova casa no 2º semestre - Getty Images
Após fazer sucesso no Manchester City, Fernandinho deve ter uma nova casa no 2º semestre Imagem: Getty Images

25/04/2021 04h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

Aos 35 anos e há 16 temporadas atuando no futebol europeu, Fernandinho está perto de realizar um sonho: ser o primeiro jogador brasileiro a conquistar uma Liga dos Campeões como capitão. Só que levantar o troféu do mais desejado e badalado torneio interclubes do planeta pode ser a última cena do volante vestindo a camisa do Manchester City.

O contrato do jogador com a equipe inglesa termina no dia 30 de junho. E, ao contrário do que aconteceu na temporada ada, não há indícios de que será renovado.

As próprias escalações do técnico Pep Guardiola reforçam essa tendência. Xodó do treinador catalão até pouco tempo atrás, o brasileiro raramente tem sido utilizado como titular em partidas importantes em 2020/21.

Na Champions, por exemplo, o camisa 25 só começou jogando em duas das dez partidas disputadas até o momento. E, na soma dos mata-matas decisivos da competição (dois confrontos contra o Borussia Mönchengladbach e mais dois contra o Borussia Dortmund), ficou em campo durante míseros 27 minutos.

Essa redução drástica no aproveitamento do jogador não é exclusividade de Fernandinho. O atacante Sergio Agüero, talvez o maior ídolo da história do clube, também perdeu espaço no time e quase não tem sido aproveitado.

A diferença é que, no caso do argentino, o City já anunciou que o contrato não será renovado e que ele irá embora ao término da temporada. Já na situação de Fernandinho, pelo menos oficialmente, ainda não há nada para ser exposto ao público.

Só que a imprensa inglesa já dá praticamente como certo que ele não permanecerá no elenco no segundo semestre. E, por conta disso, há vários rumores circulando sobre como será o futuro do brasileiro.

As especulações mais fortes apontam um retorno ao Brasil. Pelo menos dois clubes daqui, o Athletico-PR, onde Fernandinho começou a carreira como profissional, e o Atlético-MG, já itiram interesse em repatriá-lo.

Outra opção, de acordo com o jornal inglês "The Sun", é se transferir para os Estados Unidos. O grupo que istra o City possui uma franquia na MLS (Major League Soccer), o New York City, e pode oferecer ao volante a oportunidade de prorrogar a carreira por lá, sem perder completamente o vínculo com o clube que defende desde 2013.

E há ainda a chance de Fernandinho simplesmente pendurar as chuteiras ao término da temporada e um novo contrato com a equipe inglesa para fazer parte da comissão técnica de Guardiola.

Essa hipótese foi revelada em fevereiro pelo diretor de futebol do Atlético-MG, Rodrigo Caetano, em entrevista ao jornal "O Tempo", quando perguntado sobre a possibilidade de conseguir contratar o jogador.

Fernandinho e o City estão a três jogos de conquistar o inédito título europeu. A primeira partida da semifinal contra o Paris Saint-Germain está marcada para quarta-feira e será jogada na França. Na semana seguinte, o mando se inverte. O outro finalista sai do confronto entre Chelsea a Real Madrid.

A decisão do torneio está agendada para dia 29 de maio e será disputada no Olímpico Atatürk, em Istambul (Turquia). O estádio originalmente seria palco da final do ano ado, que precisou ser alterada por causa da pandemia de covid-19.

Ainda que não vença a Champions, o City já tem quase garantido mais um troféu do Campeonato Inglês. A equipe de Guardiola iniciou a rodada deste fim de semana com 11 pontos de vantagem para o Manchester United, vice-líder.