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

Brilho de Vini Jr. e Antony aponta caminho para Ramon na seleção

Antony comemora gol pelo United em partida contra o Barcelona na Liga Europa - Martin Rickett/PA Images via Getty Images
Antony comemora gol pelo United em partida contra o Barcelona na Liga Europa Imagem: Martin Rickett/PA Images via Getty Images

Do UOL, no Rio de Janeiro

24/02/2023 04h00

Os jogos do mata-mata da Liga dos Campeões e da Liga Europa ressaltaram o protagonismo de Vini Jr, no Real Madrid, e Antony, no Manchester United. Ainda que em proporções diferentes, isso pode ser uma boa notícia pensando na reconstrução da seleção brasileira depois da Copa do Mundo.

A curto prazo, a tarefa ficará a cargo do interino Ramon Menezes. A convocação do Brasil para o amistoso contra Marrocos deve ser na próxima semana. O jogo será em um mês: 25 de março, em Tânger.

Ramon foi efetivado há menos de 10 dias. A CBF não espera dele uma grande revolução na seleção, na comparação com o trabalho de Tite. A solução é transitória, já que a meta prioritária é ter Carlo Ancelotti a partir do meio do ano. Por ora, apostar em quem já esteve na Copa do Mundo e está rendendo no futebol europeu é o caminho natural para a próxima data Fifa.

Aí, Vini e Antony — ambos com 22 anos — saltam aos olhos. Sobretudo em um contexto de incerteza sobre as condições físicas de Neymar, que está com uma lesão ligamentar no tornozelo direito. "De novo e de novo", como desabafou o próprio craque do PSG.

O atacante do Real Madrid, por sua vez, tomou para si a missão de fazer a diferença. Ancelotti disse que Vini Jr, hoje, é o "mais decisivo do futebol mundial".
Como argumentos, o dinamismo de um Vini que não para de correr e driblar. A visão de um Vini que dá assistências. E a precisão de um Vini que faz gols. Contra o Liverpool, na terça-feira, foram dois, dando a arrancada da virada do Real Madrid em Anfield, no jogo de ida das oitavas da Champions.

Vini Jr durante partida do Real Madrid contra o Valencia pelo Campeonato Espanhol - Javier Soriano/AFP - Javier Soriano/AFP
Vini Jr durante partida do Real Madrid contra o Valencia pelo Campeonato Espanhol
Imagem: Javier Soriano/AFP

Vini já está completamente ambientado ao clube e tem a moral digna de quem fez o gol do título da última Liga dos Campeões. Neste ciclo, tem tudo para consolidar sua posição de principal nome na seleção brasileira — algo que não alcançou sob o comando de Tite.

Antony vive um momento distinto no Manchester United. É sua primeira temporada na Inglaterra. Mas o jeito que mudou o rumo da partida contra o Barcelona, ontem (23), pela Liga Europa, é o que ele tem de melhor a apresentar. E olha que ele ficou fora de três dos quatro jogos do United na Premier League em fevereiro por conta de uma lesão.

Recuperado, Antony não tem medo de driblar. Foi graças à canhota dele que o time de Erik Ten Hag conseguiu a virada em Old Trafford e eliminou o líder do Campeonato Espanhol. Com o crescimento do United na temporada — são só cinco pontos atrás do Arsenal, líder da Premier League —, Antony pode decolar de vez com o time. E isso é bom para a seleção.

Até a Copa do Qatar, ainda havia incerteza se Vini teria lugar cativo entre os titulares da seleção. Tite variava uma formação sem ele, usando Paquetá pela esquerda e Fred como volante.

"O campo fala", diria o próprio Tite. A mensagem é que não dá para prescindir de Vini Jr. Antony ainda não está no mesmo nível, mas dá os para seguir o mesmo caminho, sobretudo pela concorrência com Raphinha na ponta direita.

A CBF só marcou um amistoso durante a data Fifa para aumentar o tempo de treino disponível para Ramon, na esperança de que ele monte uma equação que faça a seleção ter uma apresentação digna diante dos marroquinos.