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

Casagrande vê fim da era Messi e CR7, e elogia Haaland: 'É muito especial'

Casagrande, comentarista do Grupo Globo - Reprodução/Globo
Casagrande, comentarista do Grupo Globo Imagem: Reprodução/Globo

Do UOL, em São Paulo

11/03/2021 16h07

Pela primeira vez depois de muito tempo, Cristiano Ronaldo e Lionel Messi estão fora das quartas de final da Liga dos Campeões. Enquanto o Barcelona (ESP) foi eliminado pelo PSG (FRA), a Juventus (ITA) foi superada pelo Porto (POR).

A ausência dos jogadores que colecionaram troféus de melhor do mundo nos últimos anos esquentou a discussão na edição de hoje 'Seleção Sportv'.

Comentarista do Grupo Globo, Walter Casagrande Jr. afirmou que o auge de Messi e CR7 ou e elegeu Mbappé e Haaland como os próximos jogadores a segurarem o bastão.

"É normal que a era de Cristiano Ronaldo e Messi esteja chegando ao fim. Eles não vão conseguir manter o pico de rendimento e domínio de uma partida. Esse auge, eles não vão conseguir manter. Mas enquanto jogarem, vão ter momentos de brilho ainda. Eles ainda vão decidir muitos jogos, mas não vão conseguir se manter como os melhores do mundo. Acho que o Mbappé e o Haaland entrarão no lugar do Messi e Cristiano Ronaldo. Não com o mesmo talento, mas serão igualmente decisivos. Eles vão começar a entrar nesse cenário de importância, porque são jogadores muito jovens e muito talentosos. O mesmo nível de Messi e Cristiano Ronaldo não tem. Não existe talento próximo desses dois", disse Casão.

O comentarista rasgou elogios ao atacante norueguês do Borussia Dortmund (ALE). Autor dos dois gols no empate entre a equipe alemã e o Sevilla (ESP), pelas oitavas da Liga dos Campeões, Casagrande afirmou que Haaland será o maior atacante do futebol mundial.

"Acho que o Haaland vai marcar época. Nós vamos ficar assustados com esse garoto. Ele tem velocidade, força, altura, finalização. Ele tem tudo que um centroavante tem que ter. Ele é um camisa 9 fantástico. Ele é um dos melhores que apareceram nos últimos anos. Os números que ele tem com 20 anos de idade é algo impressionante. Se nada de anormal acontecer, ele vai ganhar bola de ouro, vai ser eleito como melhor do mundo. Se ele for para um Real Madrid, por exemplo, ele vai fazer o dobro de gols que já faz. A média de gols que ele tem não é normal. É um gol por partida na carreira inteira, por quatro clubes diferentes. Esse garoto é muito especial. Ele será o top do futebol mundial", completou.

Aos 20 anos, Haaland tem chamado atenção pelos números obtidos na fase inicial da carreira. O norueguês é o jogador que levou menos tempo para fazer 20 gols em Liga dos Campeões. Enquanto Neymar demorou 38 jogos para balançar 20 vezes a rede na competição, o camisa 9 do Borussia Dortmund levou apenas 14 partidas.