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

Marcel Rizzo

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.

'Danilo é um meio-campista moderno', elogia Fifa em relatório após Mundial

Danilo recebe o prêmio de terceiro melhor jogador do Mundial de Clubes - Adil Alnaimi/DiaEsportivo/Estadão Conteúdo
Danilo recebe o prêmio de terceiro melhor jogador do Mundial de Clubes Imagem: Adil Alnaimi/DiaEsportivo/Estadão Conteúdo

Colunista do UOL

22/02/2022 04h00

"Danilo é um meio-campista moderno que faz o trabalho duro, mas também tem visão e técnica para jogar", escreveu o ex-técnico da seleção inglesa Steve McClaren em relatório da Fifa que definiu os melhores jogadores do Mundial de Clubes encerrado em 12 de fevereiro, em Abu Dhabi, nos Emirados Árabes Unidos. O volante do Palmeiras ficou em terceiro na eleição, atrás do zagueiro Thiago Silva, do campeão Chelsea, e do companheiro Dudu.

O bom desempenho de Danilo no torneio em que o Palmeiras acabou em segundo lugar, perdendo a final para o Chelsea por 2 a 1, e que resultou na bola de bronze, faz com que a direção do clube brasileiro entenda que será muito difícil segurar o volante de 20 anos por muito mais tempo no Brasil. O Liverpool, rival do Chelsea na Premier League, é um que observa.

  • Veja análises e últimas notícias do futebol no UOL News Esporte com Mauro Cezar Pereira, Alicia Klein e Domitila Becker:

E se depender dos elogios documentados pelos especialistas da Fifa vai ser complicado não vender Danilo já na próxima janela de transferência da elite europeia, em meados de 2022:

"Um jovem meio-campista que mostrou grande maturidade na leitura do jogo. Danilo chamou a atenção em sua atuação na semifinal contra o Al Ahly da maneira como protegeu seus quatro defensores, mas demonstrou paciência quando era preciso manter sua posição e bom senso para saber quando ir e se comprometer ofensivamente e, por isso, muitas vezes foi peça-chave no início de ataques e contra-ataques do Palmeiras", aponta relatório da Fifa.

Segundo o documento, o bom trabalho defensivo de Danilo foi refletido em oito bloqueios e cinco roubadas de bola durante a competição.

"Atacou e defendeu. Na final mostrou iniciativa e foi o meio-campista de destaque do Palmeiras na hora de iniciar o ataque. Foi ele quem tentou encontrar seus atacantes", escreveu o ex-técnico italiano Alberto Zaccheroni, outro membro do grupo técnico da Fifa que analisou o Mundial de Clubes e definiu os melhores da competição. Além de Zaccheroni e de McClaren fizeram parte do grupo Pascal Zuberbühler, ex-goleiro suíço, e o ex-jogador escocês Roy Aitken.

Dudu, mais experiente aos 30 anos, também recebeu elogios que resultaram na bola de prata. "Um atacante eletrizante, ele foi criativo e criou os ataques de sua equipe quando estava com a bola", aparece descrito no relatório da Fifa. Pelos números apresentados por ferramenta que ajudou o grupo técnico a escolher os melhores do Mundial, Dudu teve uma média de 2,4 tentativas de gol por jogo. Apesar de 100% dessas tentativas estarem sob pressão indireta, ele acertou 40% delas.