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

Liverpool vence o Ajax com gol contra na estreia da Champions League

Sadio Mane e Salah comemoram gol do Liverpool contra o Ajax na Liga dos Campeões - Liverpool FC via Getty Images
Sadio Mane e Salah comemoram gol do Liverpool contra o Ajax na Liga dos Campeões Imagem: Liverpool FC via Getty Images

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

21/10/2020 17h54

O Liverpool começou com o pé direito a trajetória da temporada 2020-21 da Liga dos Campeões. O time comandado por Jurgen Klopp venceu o Ajax por 1 a 0 na tarde de hoje, na Amsterdam Arena, pela primeira rodada da fase de grupos. Tagliafico (contra) marcou o gol da partida.

Sem Alisson e Van Dijk, lesionados, o Liverpool contou o brilho de Sadio Mane. Foi de uma jogada individual do senegalês, aos 35 minutos do primeiro tempo, que saiu o gol da vitória nesta quarta. Ou quase. Ele finalizou, é verdade, mas um desvio da defesa do Ajax no meio do caminho foi crucial para a bola parar no fundo da rede.

Com o resultado, o Liverpool chega a três pontos no grupo D. No outro jogo da chave, a Atalanta goleou o Midtjylland por 4 a 0, também fora de casa.

As equipes voltam a campo pela competição na próxima terça-feira (27). O Liverpool recebe o Midtjylland no Anfield, enquanto o Ajax visita a Atalanta.

Fabinho vai bem como zagueiro e salva

Se o Liverpool não tem Van Dijk na zaga, coube ao brasileiro Fabinho assumir a função na defesa. E o brasileiro teve atuação decisiva na tarde de hoje. Em um jogo bastante seguro, o camisa 3 teve o seu melhor momento pouco antes do intervalo, quando salvou uma bola em cima da linha.

Aos 43 minutos do primeiro tempo, Tadic conseguiu bom toque de cobertura na saída de Adrián. Ele só não contava que Fabinho aparecesse de forma incrível para impedir que a bola entrasse.

Tagliafico decide, mas contra

O jogo poderia muito bem ter terminado em empate, não fosse uma atuação decisiva do argentino Tagliafico. O lateral do Ajax tentou cortar um chute de Mane e acabou jogando contra a própria meta. Vale destacar que a finalização do atacante do Liverpool nem havia sido das melhores. O senegalês bateu torto, meio que chutando o chão, mas contou com a sorte para ver o gol da equipe.

Liverpool volta a vencer

O triunfo na tarde de hoje pôs fim a uma curta mas incômoda sequência negativa do Liverpool. A equipe vinha de três tropeços, sendo dois empates e uma sonora goleada por 7 a 2 sofrida diante do Aston Villa. O resultado fora de casa coloca o time inglês novamente no caminho das vitórias.

O Ajax, por sua vez, perdeu o seu segundo jogo na temporada. O time holandês vinha de uma goleada por 5 a 1, mas antes disso havia sido superado por 1 a 0 pelo Groningen.