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

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

'Endrick da Alemanha' travou no profissional e só fez 3 gols em 25 jogos

Assim como Endrick, Youssoufa Moukoko também foi fenômeno da base - Divulgação
Assim como Endrick, Youssoufa Moukoko também foi fenômeno da base Imagem: Divulgação

21/01/2022 04h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

Um menino com rosto, corpo e idade de adolescente faz horrores contra adversários quatro, cinco ou até seis anos mais velhos, conquista a torcida de um dos maiores clubes do seu país e vira quase que uma unanimidade entre quem entende de futebol.

O conto de fadas vivido nas últimas semanas pelo garoto Endrick, de 15 anos, que está a dois jogos de levar o Palmeiras ao primeiro título de Copa São Paulo de juniores de sua história (e como protagonista), não é inédito no mundo da bola.

A Alemanha mesmo acabou de experimentar um fenômeno semelhante ao produzido pelo camisa 9 do time sub-21 dos atuais bicampeões da Libertadores. E agora está vendo ele bater cabeça em seus primeiros os como profissional (algo natural para alguém tão jovem).

Nascido em Camarões, mas com cidadania germânica, Youssoufa Moukoko ou como um furacão pelas categorias de base do Borussia Dortmund. Ele marcou 141 gols em 88 partidas pelos times inferiores do clube. E, detalhe, isso porque nunca jogou contra adversários da sua idade.

Quando tinha 12 anos, o atacante atuava na equipe sub-17. Aos 14, foi promovido para o time sub-19 e, já na temporada de estreia, estabeleceu o recorde de gols do Campeonato Alemão da categoria (34, em 20 jogos).

A fama conquistada por Moukoko entre os garotos extrapolou a base. Logo, os torcedores do Dortmund começaram a fazer contagem regressiva pelo 16º aniversário do jogador, requisito básico do regulamento da Bundesliga para ele poder estrear no time adulto.

Aos 16 anos e 1 dia, o atacante se tornou o atleta mais jovem a disputar uma partida da primeira divisão germânica. Menos de um mês depois, quebrou o recorde de gol mais precoce da história da competição.

O atacante de 17 anos também já estreou na Liga dos Campeões da Europa e tem jogado pela seleção alemã sub-21. Mesmo assim, está frustrando parte da torcida que acreditava que ele teria impacto imediato na equipe principal e, mesmo muito jovem, seria um fator de desequilíbrio para o Dortmund.

Em um ano e dois meses jogando entre os adultos, Moukoko soma 25 partidas e três gols. Ele só foi escalado como titular em quatro oportunidades e chegou a ser emprestado ao time B nesta temporada para participar de um jogo da terceira divisão.

A diretoria do Palmeiras e o técnico Abel Ferreira também já têm sofrido pressão das redes sociais para começar a utilizar Endrick no time principal o quanto antes.

O atacante só poderá atuar em competições estaduais ou nacionais depois que completar 16 anos (em julho) e seu primeiro contrato profissional. No entanto, não há proibição à sua inscrição no Mundial de Clubes e ele poderia disputar o torneio que será jogado no próximo mês, nos Emirados Árabes.

Único semifinalista da Copa São Paulo-2022 que nunca conquistou o título do torneio de base mais importante do futebol brasileiro, o Palmeiras define a classificação para a final contra o São Paulo (vencedor em 1993, 2000, 2010 e 2019), às 19h de sábado.

A outra vaga na decisão sairá do confronto entre Santos (1984, 2013 e 2014) e América-MG (1996), hoje, a partir das 20h.

Como manda a tradição, o vencedor da Copinha será conhecido em 25 de janeiro, próxima terça-feira, dia do aniversário da cidade de São Paulo. O local do jogo do título ainda não foi anunciado, já que o Pacaembu foi privatizado, a por reformas e não tem condições de recebê-lo.