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

OPINIÃO

Kfouri: ‘Entre Vinícius Júnior e Neymar, eu escolheria o primeiro’

Do UOL, em São Paulo (SP)

08/03/2022 17h46

Na próxima quarta-feira (9), Real Madrid e PSG voltam a se enfrentar pelas oitavas de final da Champions League 2021/22. Na ida, a equipe sa venceu por 1 a 0, com gol de Mbappé, já nos minutos finais. Sendo assim, no Santiago Bernabéu, o time espanhol precisará triunfar por dois gols ou mais para conseguir sair com a vaga.

Na live do programa Cartão Vermelho, transmitida pelo UOL Esporte nesta terça-feira (8), os jornalistas Juca Kfouri e José Trajano projetaram o confronto. Trajano ressaltou que não enxerga favoritismo para nenhum dos lados e ainda revelou para qual dos dois times vai a sua torcida.

"Eu espero um daqueles grandes jogos, até porque há uma diferença grande entre um jogo europeu e aqui na nossa terra. Essa é uma rodada decisiva, já houve a primeira perna, agora é a segunda e quem se der mal não vai para as quartas de final. Eu não vejo um favorito para esse duelo, mas tem 1 a 0 a favor do PSG", começou dizendo José Trajano.

"Apesar da vantagem dos ses, a minha torcida vai para o Real Madrid. Não que seja por algo contra o Neymar ou outras coisa, mas sim porque o Real Madrid vem de longe. Eu tive um time de futebol na minha adolescência, o São Bento Futebol Clube, que jogava de manga comprida no Rio de Janeiro no maior calor não em homenagem ao Santos, mas sim ao Real Madrid. Então, como esse time está na minha memória afetiva dentro do futebol com Puskás, Di Stéfano, Gento, Luis del Sol e outros, eu trago comigo essa equipe dentro do meu coração, apesar de ter sido o time do Franco", disse o comentarista.

No momento seguinte, Juca Kfouri opinou a respeito da 'disputa' entre Neymar e Vinícius Júnior. O jornalista apontou qual dos dois jogadores brasileiros escolheria para sua equipe se tivesse que optar por apenas um. Diante do nome apontado, Trajano concordou, porém fez um apontamento quanto à diferença de nível do atleta na seleção e no seu clube.

"Olhando para esse jogo, me questionei a respeito de quem eu escolheria para o meu time entre Vinícius Júnior e Neymar. Hoje, eu escolheria o Vini Jr", disse Kfouri.

"Pensando para frente, eu também escolheria o Vinícius Júnior. Agora, temos que ver o seguinte: no Real Madrid, ele arrebenta, mas na seleção isso ainda não aconteceu. Ele teve alguns lampejos nas poucas oportunidades que teve", afirmou Trajano.

A próxima edição da live do programa Cartão Vermelho será na próxima terça-feira (15). Você pode acompanhar a live pelo Canal UOL, no app Placar UOL, na página do UOL Esporte ou no canal do UOL Esporte no Youtube.

Real Madrid