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

Real Madrid

'Mbappé? Estamos empolgados com Vini Jr e Rodrygo', diz técnico do Real

Vinicius Junior e Rodrygo na partida contra o Shakhtar Donetsk na Liga dos Campeões do ano ado - Antonio Villalba/Real Madrid via Getty Images
Vinicius Junior e Rodrygo na partida contra o Shakhtar Donetsk na Liga dos Campeões do ano ado Imagem: Antonio Villalba/Real Madrid via Getty Images

Do UOL, em São Paulo (SP)

13/09/2022 09h10

O técnico do Real Madrid, Carlo Ancelotti, foi questionado por um jornalista durante uma coletiva de imprensa, nesta manhã, sobre a chance de Mbappé jogar na equipe merengue em breve — ontem, o jornal francês L'Equipe afirmou que o vínculo do PSG com o atacante se encerra, na verdade, em 2024 (um ano antes do que o clube anunciou no fim de maio).

Ancelotti achou engraçado o assunto voltar à tona após a novela no início do ano sobre o destino de Mbappé, mas foi direto em sua resposta: o Real está feliz com Vinicius Junior e Rodrygo e não tem olhos para outro atacante no momento.

"Estamos empolgados com os nossos atacantes, especialmente com os jovens. Estamos muito empolgados com Karim, mas quando um jovem se destaca empolga muito mais que alguém que você está acostumado a ver [se destacando]", disse.

"O que fizeram, e estão fazendo, Vini e Rodrygo claramente estamos muito empolgados e não pensamos em outro, de verdade. Não há dúvidas, estamos bem focados nesses jogadores", acrescentou.

Nesta temporada, Vini Jr atuou em sete partidas, marcou cinco gols e deu duas assistências — ou seja, tem uma participação em gol por jogo. Já Rodrygo jogou cinco, marcou dois gols e deu duas assistências, quase alcançado a média do compatriota.

Ambos ainda são muito jovens, mas estão se destacando desde a última temporada. O jogador revelado pelo Flamengo tem 22 anos, enquanto a joia ex-Santos tem 21.

Após vencer o Celtic por 3 a 0 na estreia da Liga dos Campeões, o Real volta a campo pela principal competição europeia amanhã. A equipe enfrenta o RB Leipzig, às 16h (de Brasília), no Santiago Bernabéu.

Real Madrid