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

Manchester United

Manchester United anuncia retorno de Cristiano Ronaldo após 12 anos

Do UOL, em São Paulo

27/08/2021 12h56Atualizada em 27/08/2021 20h21

Ele está de volta! O Manchester United confirmou o "chapéu" no Manchester City e anunciou, no início da tarde de hoje, a contratação do atacante Cristiano Ronaldo, de 36 anos.

O craque português deixou a Juventus após três temporadas e retornou ao clube inglês, onde atuou entre 2003 e 2009 e marcou 118 gols em 292 jogos. O tempo de contrato não foi divulgado.

A diretoria dos Red Devils, ao tomar conhecimento da negociação envolvendo o astro e o rival, fez contato com Jorge Mendes, agente do jogador, e o negócio não demorou para ser finalizado - a paixão de CR7 pelo antigo clube pesou na decisão.

"O Manchester United tem o prazer de confirmar que o clube chegou a acordo com a Juventus para a transferência de Cristiano Ronaldo, sujeito a acordo de termos pessoais, visto e médico. Cristiano, cinco vezes vencedor da Bola de Ouro, ganhou até agora mais de 30 troféus importantes durante sua carreira, incluindo cinco títulos da Liga dos Campeões da Uefa, quatro Mundiais de Clubes, sete títulos de ligas nacionais e a Eurocopa por Portugal, seu país natal", divulgou o United em comunicado.

De volta para casa

CR7 retorna ao clube que o fez eleito como o melhor jogador do mundo pela primeira vez.

Contratado junto ao Sporting em 2003, quando tinha 18 anos, o atacante despontou para o cenário mundial com a camisa do United e, além de prêmios individuais, conquistou a Liga dos Campeões na temporada 07/08.

Primeira agem de CR7 no United foi histórica, com 118 gols em 292 jogos - Matthew Peters/Manchester United via Getty Images - Matthew Peters/Manchester United via Getty Images
Primeira agem de CR7 no United foi histórica, com 118 gols em 292 jogos
Imagem: Matthew Peters/Manchester United via Getty Images

Em 2009, tornou-se então dono da contratação mais cara da história do futebol ao com o Real Madrid. O português ficou por quase uma década na Espanha antes de buscar um novo desafio na Juventus.

No futebol italiano, CR7 continuou brilhando e faturou cinco títulos com a camisa da Juve nas últimas três temporadas.

Agora, o astro tem o desafio de recolocar o estrelado United, de Pogba, Cavani, Bruno Fernandes e companhia, novamente entre as potências mundiais do futebol.

Manchester United