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

Jesus e De Bruyne decidem e City vira sobre o Real no Bernabéu

Gabriel Jesus comemora após marcar para o Manchester City contra o Real Madrid pela Liga dos Campeões - David Ramos/Getty Images
Gabriel Jesus comemora após marcar para o Manchester City contra o Real Madrid pela Liga dos Campeões Imagem: David Ramos/Getty Images

Do UOL, em São Paulo

26/02/2020 18h53

O Manchester City saiu na frente na partida de ida das oitavas de final da Liga dos Campeões ao bater o Real Madrid em pleno Santiago Bernabéu por 2 a 1. Gabriel Jesus e De Bruyne anotaram os gols visitantes no segundo tempo, enquanto o placar foi aberto por Isco após ter recebido assistência de Vinícius Júnior, também na segunda etapa.

Se o primeiro tempo entre as equipes foi morno, o segundo contou com três gols e boa atuação dos brasileiros. Pelo Real, Vinícius Júnior concedeu velocidade ao time e ainda serviu a bola para que Isco marcasse. O time conquistou confiança, mas a perdeu assim que o City empatou, com gol de Jesus. De Bruyne foi o responsável pelas melhores jogadas de ataque dos visitantes.

O mata-mata foi rodeado por contextos distintos que renderam assunto ao longo da semana. Um deles foi o temor pelo coronavírus após a Espanha confirmar os primeiros casos de contágio de covid-19. Isso levou torcedores a comparecerem ao estádio utilizando máscaras de proteção.

Esta foi a primeira partida do Manchester na Champions após o clube ser banido de competições da Uefa pelas próximas duas temporadas. Ainda hoje, o CAS (Tribunal Arbitral do Esporte) divulgou ter recebido a apelação do City contra a punição.

Guardiola x Zidane

Havia também a expectativa em torno do primeiro encontro oficial de Guardiola e Zidane como técnicos. Os dois já haviam se encontrado em um amistoso de pré-temporada nos Estados Unidos, em 2017, no qual o City saiu vitorioso por 4 a 1.

Enquanto jogadores, os dois se enfrentaram poucas vezes. Ao longo da semana, os treinadores se elogiaram e mantiveram tom cordial um com o outro. Antes da partida, trocaram cumprimentos amistosos. No fim, Guardiola levou a melhor.

pep_zizou - Sergio Perez/Reuters - Sergio Perez/Reuters
Pep Guardiola e Zinedine Zidane: encontro aguardado na Liga dos Campeões
Imagem: Sergio Perez/Reuters

Início equilibrado

As equipes mantiveram duelo equilibrado no primeiro tempo, com as melhores chances apresentadas do meio para o fim da etapa. Com 19 minutos, Benjamin Mendy recebeu de Gündogan no que poderia ser a primeira boa chance do City, mas o francês acabou derrapando e Varane conseguiu fazer o corte.

Na sequência, De Bruyne cruzou para Gabriel Jesus, que limpou a marcação e finalizou. Courtois fez grande defesa e manteve os marcadores zerados.

A primeira grande chance do Real veio aos 29 minutos: Ferland Mendy cruzou da esquerda e Benzema cabeceou em direção ao gol, mas Ederson fez a defesa.

Aos 46 minutos, De Bruyne cobrou escanteio na esquerda e Courtois espalmou. A bola sobrou para Jesus, que finalizou de primeira, e Casemiro salvou quase na linha gol.

Etapa corrida e virada no fim

O placar da partida foi aberto aos 10 minutos do segundo tempo. Vinícius Júnior levou a melhor em dividida com Rodri, invadiu a área e rolou a bola para o meio. Isco dominou e finalizou, balançando as redes.

Gabriel Jesus igualou os marcadores aos 32 minutos, em jogada conjunta com De Bruyne, que limpou a marcação e lançou para Jesus; nas costas de Sergio Ramos, o brasileiro apenas tocou para dentro do gol.

Com o placar igual, o City seguiu embalado e criou mais chances. Aos 37 minutos, Carvajal atrasou o lance e deu um carrinho em Sterling, que soube aproveitar o lance para "cavar" um pênalti para o Manchester City.

De Bruyne ficou responsável pela cobrança e, com tranquilidade, mandou a bola no canto esquerdo do gol.

Para completar a noite, o capitão do Real, Sergio Ramos, ainda foi expulso aos 40 minutos após falta em cima de Gabriel Jesus.

As equipes se encontram novamente pelo jogo de volta em Manchester, no Etihad Stadium, no dia 17/3, às 17h (de Brasília). O Manchester detém a vantagem não só da vitória como também de ter marcado dois gols fora de casa.