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

Copa da Liga Inglesa - 2022

Jota faz dois, Liverpool bate Arsenal e encara Chelsea na final

Diogo Jota (Liverpool) comemora ao marcar no duelo contra o Arsenal, no Emirates Stadium, pela semifinal da Copa  da Liga Inglesa - JOHN SIBLEY/Action Images via Reuters
Diogo Jota (Liverpool) comemora ao marcar no duelo contra o Arsenal, no Emirates Stadium, pela semifinal da Copa da Liga Inglesa Imagem: JOHN SIBLEY/Action Images via Reuters

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

20/01/2022 18h38

O Liverpool está na final da Copa da Liga Inglesa. Em grande partida de Diogo Jota, o time comandado por Jurgen Klopp venceu o Arsenal por 2 a 0, hoje, em pleno Emirates Stadium, e encara o Chelsea na decisão.

O carrasco do Arsenal foi o atacante português, que marcou os dois gols da partida, com direito a belo e de calcanhar de Roberto Firmino na jogada do primeiro tento. Como o jogo de ida terminou empatado em 0 a 0, quem vencesse hoje garantia uma vaga na final.

Classificado, o Liverpool tenta se isolar como maior campeão da competição. Atualmente, o time divide o posto com o Manchester City, com oito taças cada.

A final contra o Chelsea - que eliminou o Tottenham na outra semifinal - será no dia 27 de fevereiro, no estádio Wembley, em Londres (ING).

Para cima

Empurrado por sua torcida, o Arsenal deu trabalho para o Liverpool no início do jogo. Contando com um Martinelli inspirado pela esquerda, os donos da casa apostaram na forte marcação na saída de bola e jogadas em velocidade.

A pressão culminou numa bola na trave aos seis minutos de jogo. Em cobrança de falta central próxima a grande área, Lacazette mandou no travessão de Kelleher, que triscou na bola.

Não valeu!

Apesar do sufoco, o Liverpool conseguiu assustar os presentes no Emirates Stadium. Em cobrança de escanteio de Jones aos 13 minutos, Fabinho desviou e Matip, de cabeça, marcou o gol. A arbitragem, porém, apontou impedimento do zagueiro dos Reds.

Pintura

O Liverpool aproveitou os espaços deixados pelo valente Arsenal para abrir o placar aos 19 minutos da primeira etapa. Em jogada construída de pé em pé, Firmino acionou Alexander-Arnold com belo toque de calcanhar, e lateral tocou para Diogo Jota pela esquerda. O atacante se livrou da marcação, puxou para o meio e finalizou na entrada da grande área, sem chance para o goleiro Ramsdale.

Lá e cá

O segundo tempo começou agitado, com Arsenal e Liverpool em busca do gol. Os donos da casa tiveram a primeira chance logo aos quatro minutos da etapa final, mas Lacazette mandou por cima do gol. Dois minutos depois, Gordon também desperdiçou uma boa chance após jogada de Diogo Jota.

Já aos 14, após cobrança de escanteio de Alexander-Arnold, Konaté subiu mais que todo mundo e mandou na trave. No rebote, Henderson finalizou e Ramsdale salvou no cantinho.

E Martinelli quase deixou tudo igual aos 28 minutos. Em jogada individual, o brasileiro chutou cruzado, e o goleiro Kelleher defendeu no susto.

Só deu ele!

O Liverpool assegurou a classificação aos 34 minutos da segunda etapa, e com direito a drama. Martinelli perdeu a bola no campo de defesa, Alexander-Arnold lançou Diogo Jota na entrada da grande área. O atacante encobriu o goleiro Ramsdale e fez o segundo do Liverpool.

A arbitragem apontou impedimento do jogador, mas o árbitro de vídeo assinalou posição regular, e confirmou o segundo tento do atacante no jogo.

Um a menos

Para aumentar a tensão, o Arsenal encerrou a partida com um jogador a menos. Thomas Partey recebeu o segundo cartão amarelo aos 45 minutos da segunda etapa, após falta em Fabinho. Curiosamente, o jogador havia recebido o primeiro amarelo apenas três minutos antes.

Partey ainda começou a partida no banco de reservas, e só foi a campo aos 29 do tempo final, quando entrou na vaga de Emile Smith Rowe.