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

Liga dos Campeões 2019/2020

PSG vence B. Dortmund com gol de Neymar e volta às quartas da Champions

Do UOL, em São Paulo

11/03/2020 18h53

O Paris Saint-Germain conquistou, enfim, sua vaga nas quartas de final da Liga dos Campeões da Europa. Depois três temporadas seguidas caindo nas oitavas, o time francês venceu hoje (11) o Borussia Dortmund por 2 a 0, em casa —depois de ter perdido por 2 a 1 na partida de ida. O choro de Neymar, autor de um dos gols do triunfo, e a comemoração até mesmo polêmica dos jogadores em campo mostra o quão ansiosos estavam todos pela classificação. Eles só não puderam celebrar com sua torcida de imediato: o Parc des Princes estava sem espectadores, vetada em função da pandemia do coronavírus.

Com a classificação, o PSG volta a se colocar entre os oito melhores da Champions, o que não acontecia desde a temporada 2015/2016 —na ocasião, o time caiu justamente nas quartas diante do Manchester City.

Sem contar com o público, o PSG também superou a ausência de Thiago Silva, que se recupera de lesão. Kylian Mbappé, que sentiu forte dores de garganta nos últimos dias, ficou fora do time titular e só entrou em campo na segunda etapa. Mesmo assim, a equipe sa contou com as boas atuações de Neymar e Ángel di María para vencer.

Susto de Neymar

O atacante Neymar protagonizou um susto logo aos 7 minutos do primeiro tempo ao cair com o braço direito aberto. Atendido em campo, o camisa 10 reclamou de dores no ombro. Chegou a sair rapidamente, mas voltou fazendo careta. Em pouco tempo, ou a atuar normalmente e ficou até o apito final. No fim das contas, fez até gol.

Festa da torcida

Com o veto à presença de torcida no Parc des Princes, a solução foi fazer festa do lado de fora do estádio. Horas antes do pontapé inicial, uma multidão já se concentrava nos arredores do palco da partida. Ao longo do confronto, era possível ouvir a queima de fogos e a festa do público que não entrou. No final da partida, os atletas subiram as arquibancadas do estádio para fazer gestos em direção ao público nos arredores. Festa retribuída.

Festa torcida PSG - Gonzalo Fuentes/Reuters - Gonzalo Fuentes/Reuters
Imagem: Gonzalo Fuentes/Reuters

1º tempo: Dortmund tenta, mas PSG convence

Sem o apoio da torcida, o PSG começou com dificuldades para criar e viu o Borussia disposto a fazer uma partida equilibrada. Aos 18 minutos do primeiro tempo, Raphael Guerreiro aproveitou uma sobra de jogada na esquerda e cruzou na entrada da área; Jadon Sancho bateu de primeira e mandou com perigo à esquerda do goleiro Keylor Navas. Aos 21, Erling Haaland ia recebendo belo e na entrada da área pela esquerda, mas Presnel Kimpembe apareceu em cima da hora e interceptou com um carrinho.

Na resposta, um minuto depois, Ángel di María evitou a saída pela direita na linha de fundo, ou a bola no meio das pernas de Dan-Axel Zagadou e foi derrubado fora da área. O árbitro mandou seguir. Com 25 minutos, também pela direita, o PSG demonstrava reagir: Edinson Cavani avançou, bateu cruzado e só não marcou porque o goleiro Roman Bürki desviou com o pé.

Quando o PSG já era melhor, aos 27, o gol veio: após escanteio cobrado por Di María pela direita, Neymar apareceu livre dentro da área e mandou de cabeça para as redes. O Dortmund ainda tentou empatar aos 35, em cobrança de falta de Sancho pela esquerda, mas Keylor Navas apareceu bem posicionado e defendeu com segurança.

Nos acréscimos, o PSG confirmou seu melhor momento no jogo e fez 2 a 0. Juan Bernat roubou a bola no meio-campo, em jogada que ou depois por Neymar e Di María; a bola chegou na direita para Pablo Sarabia, que cruzou baixo e contou com o desvio do próprio Bernat para ampliar.

2º tempo: ritmo lento e jogo sem brilho

Aos 9 minutos, Ángel di María cobrou falta com categoria pela esquerda e só não fez 3 a 0 porque o goleiro Bürke se esticou para mandar para escanteio. No entanto, a partir daí, as duas equipes fizeram um jogo acomodado, como se esperando uma única chance para marcar.

Aos 32, após troca de es na entrada da área, Julian Brandt arriscou para o gol, mas a bola desviou e ou por cima do gol. No fim, aos 42, Emre Can fez falta dura em Neymar e levou o cartão vermelho, deixando a tarefa alemã ainda mais improvável àquela altura.