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

Varane revela como repercutiu entrevista de CR7 no vestiário do United

Raphael Varane, zagueiro francês do Manchester United, deixa campo aos prantos após se lesionar sozinho a um mês da Copa do Mundo - Chloe Knott/Getty
Raphael Varane, zagueiro francês do Manchester United, deixa campo aos prantos após se lesionar sozinho a um mês da Copa do Mundo Imagem: Chloe Knott/Getty

Colaboração para o UOL

16/11/2022 12h49

A polêmica entrevista de Cristiano Ronaldo segue dando o que falar na Europa e no mundo. Com as competições de clubes paradas e grande parte dos atletas servindo suas seleções, Varane confirmou que as declarações do português afetaram o elenco do Manchester United.

Em entrevista à rádio sa 'Europe1', o zagueiro afirmou que estão tentando contornar a situação internamente. "Obviamente isso nos afetou. Estamos acompanhando o que está acontecendo e o que está sendo dito. Tentamos amenizar a situação do nosso jeito, tentamos não nos envolver demais", afirmou o camisa 19 dos Diabos Vermelhos.

Varane, que também atuou com Cristiano Ronaldo nos tempos de Real Madrid, itiu que declarações de um jogador do nível do português têm um impacto diferente. "O que está acontecendo no nível da mídia nos grandes clubes está ganhando muito impulso. Quando é uma estrela como o Cristiano Ronaldo, ainda mais, então tentamos responder a isso com distanciamento, ou seja, não estamos tentando mudar a situação sozinhos, fazemos parte de um coletivo", declarou.

Assim como Cristiano está reunido com a seleção portuguesa às vésperas da Copa do Mundo, Varane treina com o elenco da França que vai ao Catar defender o título. Após se lesionar em partida do United, Varane era dúvida até pouco antes da divulgação da lista dos Bleus, mas, se recuperou e deve estar à disposição para a estreia da França.

Atual campeã, a França estreia na próxima terça-feira (22), contra a Austrália, pelo Grupo D. Portugal, de Cristiano Ronaldo, estreia na quinta-feira (24), contra Gana, pelo Grupo H. Antes, tem um último desafio: amistoso contra a Nigéria, amanhã (17), visando a preparação final dos Navegadores.

O elenco do Manchester United só deve se reunir novamente após a Copa, enquanto a diretoria tenta apagar o incêndio que o camisa 7 deixou para trás. Com ou sem Cristiano Ronaldo, o próximo desafio oficial é só em 21 de dezembro, contra o Burnley, pela Copa da Liga Inglesa.

  • O Esquenta da Copa conta como foi o dia de treino da seleção brasileira, amistosos, goleada da Argentina e mais notícias. Assista: