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

Jornal: Neymar preocupa PSG e vira dúvida na Liga dos Campeões

Neymar reclama durante partida entre PSG e Rennes, pelo Campeonato Francês. - STEPHANE MAHE/REUTERS
Neymar reclama durante partida entre PSG e Rennes, pelo Campeonato Francês. Imagem: STEPHANE MAHE/REUTERS

Colaboração para o UOL

22/01/2023 11h46

Faltando pouco menos de um mês para o primeiro duelo entre PSG e Bayern de Munique, pelas oitavas de final da Liga dos Campeões, o estado físico de Neymar preocupa diretoria e comissão técnica do clube francês. Segundo o jornal 'L'Équipe', a lesão sofrida pelo camisa 10 na Copa do Mundo ainda assombra o jogador.

O tornozelo de Neymar, que o tirou de combate na estreia e mais dois jogos da Copa, segue o incomodando, mesmo após conseguir retornar ainda no Mundial e marcar dois gols, contra Coreia do Sul e Croácia. Expulso na volta ao PSG pós-Qatar, Neymar foi flagrado mancando em alguns momentos dos últimos jogos do Campeonato Francês e virou dúvida para o duelo mais importante da temporada.

Principal objetivo do projeto PSG, a Liga dos Campeões entra em sua fase eliminatória e o clube de Paris revê um velho algoz: o Bayern adiou o sonho francês em 2020, no chamado 'Super Agosto', com as fases sendo disputadas em jogo único, todos em Portugal, a partir das quartas de final, em função da pandemia. Com Neymar em campo, o Bayern derrotou o PSG por 1 a 0 e conquistou a taça mais importante da Euopa.

Neymar começou a atual temporada em grande fase, com gols, assistências e comandando o trio de ataque com Messi e Mbappé. Após reencontrar sua melhor versão, com boas atuações e longe das lesões, o atacante chegou ao Qatar em seu melhor momento nos últimos anos, mas, teve novamente seu desempenho em Copas do Mundo atrapalhado por uma lesão.

Sabendo da pressão por um bom desempenho a nível continental, o PSG prepara Neymar para retornar em plenas condições físicas até o dia 14 de fevereiro, data do confronto de ida, no Parque dos Príncipes.

Entretanto, o tornozelo ainda não está completamente cicatrizado e a preocupação interna aumenta com o ar do tempo, com a possibilidade de não poder contar com o brasileiro, que já desfalcou o clube em outros duelos eliminatórios da Liga dos Campeões nas últimas temporadas.