;(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 - 2020/2021

City aproveita falhas do PSG, vira e sai em vantagem na semi da Champions

Colaboração para o UOL, em São Paulo

28/04/2021 17h52

O Manchester City venceu o Paris Saint-Germain por 2 a 1 hoje, no primeiro jogo da semifinal da Liga dos Campeões. Os ses saíram na frente com o brasileiro Marquinhos, e os comandados de Pep Guardiola deixaram tudo igual com Kevin De Bruyne e viraram com Riyad Mahrez. O confronto aconteceu no Parque dos Príncipes, na França.

A virada do City só veio após duas falhas da defesa do PSG. Na primeira, De Bruyne levantou para a área, ninguém cortou, o goleiro Keylor Navas ficou indeciso, e a bola entrou direto no gol. Depois, Mahrez cobrou falta, a barreira abriu, e os ingleses viraram a partida.

Principais estrelas do PSG, Neymar e Mbappé não brilharam como de costume. Os dois sofreram com a forte marcação do City. Marquinhos foi um dos destaques do jogo, não só pelo gol, mas também pela liderança no setor defensivo. Di Maria também se destacou pelos ses e foi quem mais gerou problemas para a zaga inglesa. Já pelo City, Kevin De Bruyne não teve oportunidades claras, mas marcou o dele após um momento de indecisão da defesa adversária.

Com o resultado, os ingleses jogam por um empate e podem perder até por 1 a 0 na partida de volta, que acontece na próxima terça-feira, 4, para avançar à final do torneio. Já o PSG, precisa de uma vitória por dois gols de diferença, ou até mesmo um de diferença, desde que marque mais de duas vezes.

Primeiro tempo:

O PSG foi quem saiu primeiro para jogo. Aos dois minutos, Neymar recebeu na entrada da área, tentou a finta, mas chutou fraco, sem levar perigo para Ederson. No lance seguinte, De Bruyne chegou a receber um bom e, mas foi anulado por Marquinhos dentro da área do time francês.

Aos 14 minutos, Di Maria cobrou escanteio, e Marquinhos aproveitou o cruzamento e abriu o placar para os donos da casa no Parque dos Príncipes. A resposta do City veio aos 20 minutos, após um lançamento de Cancelo, Bernardo Silva quase pegou Navas de surpresa, mas o goleiro costa-riquenho estava bem posicionado e evitou o empate.

Aos 41 minutos, Foden recebeu dentro da área sozinho um belo e de Bernardo Silva, mas chutou em cima de Navas, que evitou o empate.

Segundo tempo:

Os 45 finais começaram com um Manchester City mais ativo em campo. Com maior pressão nos minutos iniciais, os visitantes tentaram tirar a vantagem conquistada pelo Paris no primeiro tempo. Com 15 minutos de jogo, De Bruyne arriscou uma meia bicicleta, que ou perto do gol de Navas.

Aos 18 minutos, De Bruyne deixou tudo igual no placar. O belga arriscou um cruzamento na área, que ou direto por todo mundo. A bola pingou na frente de Navas, que foi pego de surpresa e não conseguiu fazer a defesa. Aos 25, Mahrez bateu falta, a barreira abriu e os ingleses viraram o jogo.

Com 32 minutos de jogo, Idrissa Gueye acertou uma forte entrada em Gündogan por trás e foi expulso, deixando o Paris com um jogador a menos na reta final da partida.

Próximos compromissos:

O Paris Saint-Germain volta aos gramados no próximo sábado, 1º, às 12h (de Brasília), quando enfrenta o Lens, pelo Campeonato Francês. Depois disso, viaja para a Inglaterra, onde terá o jogo de volta da semifinal da Liga dos Campeões contra o Manchester City, na terça-feira, 4, às 16h (de Brasília).

Já o Manchester City também jogará no sábado, 1º, às 8h30 (de Brasília), pelo Campeonato Inglês, contra o Crystal Palace. Depois disso, os comandados de Pep Guardiola começam a preparação para enfrentar o PSG, na Inglaterra, no jogo de volta da semifinal da Liga dos Campeões, na terça-feira, 4, às 16h (de Brasília).

Como Neymar ligou chance de ser melhor do mundo à Champions League

Você acha que Neymar vai conquistar, um dia, o título de melhor do mundo? A possibilidade existe, mas existe uma coisa no caminho: a Liga dos Campeões. O UOL Esporte Explica, com Domitila Becker, explica como a saída do Barcelona ligou, obrigatoriamente, a conquista da Champions a uma coroação do brasileiro como melhor do planeta. Veja:

Outros capítulos de UOL Esporte Explica: