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

Rafael Reis

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Os melhores: 7 jogadores brasileiros que saem em alta desta temporada

Craque do Real, Vinicius Jr. foi o principal nome brasileiro na temporada europeia - Alex Caparros/Getty Images
Craque do Real, Vinicius Jr. foi o principal nome brasileiro na temporada europeia Imagem: Alex Caparros/Getty Images

Colunista do UOL

01/06/2023 04h20

Receba os novos posts desta coluna no seu e-mail

Email inválido

A temporada 2022/23 do futebol europeu está chegando ao fim com a disputa da reta final dos últimos campeonatos nacionais. E, no dia 10 de junho, será a vez da decisão da Liga dos Campeões.

O "Blog do Rafael Reis" apresenta abaixo sete jogadores brasileiros que saem em alta da temporada.

VINÍCIUS JÚNIOR
Atacante, 22 anos, Real Madrid (ESP)
54 jogos, 23 gols, 21 assistências

Vinícius Júnior 'vai pra galera' após fazer seu gol na vitória do Real Madrid por 4 a 1, sobre o Al Ahly, no Mundial - Divulgação / Twitter do Real Madrid - Divulgação / Twitter do Real Madrid
Imagem: Divulgação / Twitter do Real Madrid

Protagonista do clube mais poderoso do mundo, participou ativamente de mais de um terço dos 126 gols anotados pelo Real e chegou a ser tratado como candidato aos prêmios de melhor do mundo. Ao comprar briga com racistas que tanto o atacam nos estádios espanhóis, viu seu nome ganhar força também fora do cenário esportivo.

GABRIEL MARTINELLI
Atacante, 21 anos, Arsenal (ING)
46 jogos, 15 gols, 6 assistências

Martinelli, do Arsenal, comemora gol contra o Everton pelo Campeonato Inglês - Julian Finney/Getty Images - Julian Finney/Getty Images
Imagem: Julian Finney/Getty Images

Um dos principais nomes da melhor campanha do Arsenal na Premier League desde a conquista do título invicto em 2003/04. Com 15 gols, igualou o recorde de Firmino e se transformou no maior artilheiro brasileiro em uma única edição do Inglês.

MALCOM
Atacante, 26 anos, Zenit São Petersburgo (RUS)
33 jogos, 26 gols, 9 assistências

Malcom acerta bicicleta em jogo do Zenit no Campeonato Russo - Reprodução/Twitter/fczenit_en - Reprodução/Twitter/fczenit_en
Imagem: Reprodução/Twitter/fczenit_en

Campeão e artilheiro na Rússia, foi o brasileiro que mais meteu bolas nas redes na temporada europeia. O sucesso pelo Zenit superou as restrições impostas pela guerra na Ucrânia e o fez voltar para a seleção brasileira depois de cinco anos da sua primeira (e até então única) convocação.

BRUNO GUIMARÃES
Volante, 25 anos, Newcastle (ING)
40 jogos, 5 gols, 4 assistências

Bruno Guimarães, jogador do Newcastle, em partida pelo Campeonato Inglês. - LEE SMITH/Action Images via Reuters - LEE SMITH/Action Images via Reuters
Imagem: LEE SMITH/Action Images via Reuters

É o cérebro do time que terminou a Premier League na quarta colocação e celebrou a volta à Champions depois de 20 anos. Mesmo com a provável chegada de reforços pesados para o ingresso na elite europeia, deve continuar tendo papel central no projeto do Newcastle.

JOELINTON
Meia, 26 anos, Newcastle (ING)
40 jogos, 8 gols, 3 assistências

Joelinton, do Newcastle, festeja um gol pela Premier League - GLYN KIRK/AFP - GLYN KIRK/AFP
Imagem: GLYN KIRK/AFP

Ex-centroavante que se transformou em meia na Europa, estabeleceu uma bela parceria no setor de criação com Bruno Guimarães. E agora, já no fim da temporada, foi recompensado com a convocação inédita para a seleção.

DAVID NERES
Meia-atacante, 26 anos, Benfica (POR)
48 jogos, 12 gols, 15 assistências

David Neres comemora após marcar para o Benfica contra o Dínamo de Kiev pela Liga dos Campeões 2022/2023 - Patricia de Melo Moreira/AFP - Patricia de Melo Moreira/AFP
Imagem: Patricia de Melo Moreira/AFP

Reencontrou seu melhor futebol depois de algumas temporadas de baixo rendimento no Ajax e seis meses de inatividade no Shakhtar Donetsk. Foi o dono do lado direito do ataque do Benfica na conquista do título português e o segundo jogador do elenco que mais deu es para gol.

CASEMIRO
Volante, 31 anos, Manchester United (ING)
52 jogos, 7 gols, 7 assistências

Casemiro comemora gol pelo Manchester United na final da Copa da Liga Inglesa - Tony Obrien/REUTERS - Tony Obrien/REUTERS
Imagem: Tony Obrien/REUTERS

Ao dar o o mais corajoso da sua carreira, provocou que o Real Madrid dependia mais dele do que o contrário. Casemiro deu um jeito no meio-campo do Manchester United e ajudou o gigante inglês a reencontrar o caminho da Champions.