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

Internacional

Inter marca nos acréscimos e vence a primeira na Libertadores

Wanderson em ação em Inter x Metropolitanos, jogo da Libertadores - Maxi Franzoi/AGIF
Wanderson em ação em Inter x Metropolitanos, jogo da Libertadores Imagem: Maxi Franzoi/AGIF

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

18/04/2023 21h00

O Inter venceu o Metropolitanos (VEN) no apagar das luzes por um 1 a 0, com gol marcado por Alemão. A partida foi válida pela segunda rodada da Libertadores, em jogo no Beira-Rio, nesta terça-feira.

O gol saiu aos 46 minutos do segundo tempo. O Inter insistiu e, depois de perder gols durante 90 minutos, marcou com Alemão.

É a primeira vitória do Colorado na Libertadores deste ano. O time estreou com um 1 a 1 diante do Independiente Medellín (COL).

Próximo jogo do Inter é contra o Flamengo, pelo Brasileiro. O Colorado recebe o Rubro-Negro no domingo (23).

Como fica o grupo?

Pelo grupo B, o Inter soma quatro pontos em dois jogos e lidera. Nacional-URU e Independiente Medellín ainda não jogaram pela rodada.

O Nacional venceu na primeira partida. Já o Metropolitanos soma duas derrotas na competição.

O Inter volta a disputar a Libertadores na quarta-feira (3), contra o Nacional, em casa.

Como foi o jogo:

Domínio total do Inter no começo do jogo. O gol colorado não saiu por pouco no início da partida, enquanto os venezuelanos se seguraram de qualquer forma e mal avam do meio campo.

O Metropolitanos acordou já depois da metade do primeiro tempo, com três chegadas seguidas. Mesmo com a melhora venezuelana, o Inter seguiu na pressão e terminou os primeiros 45 minutos com 14 finalizações.

Na volta do segundo tempo, mesmo roteiro. O Colorado colecionou gols perdidos, sem conseguir furar a barreira adversária.

Lances perigosos e gols:

Antes dos 10 minutos, o Inter chegou duas vezes com bastante perigo. Primeiro, aos 4, com Alan Patrick errando ao dominar um cruzamento e perdendo o tempo da bola para mandar para o gol. Já aos 9, Wanderson mandou um chute pela esquerda no travessão.

Wanderson para no zagueiro aos 28 minutos. Após jogadaça de Igor Gomes, com direito a drible da vaca dentro da área, o jogador atrasa a bola para Wanderson, que chuta mas foi travado por Ferro na hora certa.

Dois gols perdidos do Inter aos 20 minutos do segundo tempo. Mais uma vez, a bola teimou em não entrar, com um bate rebate dentro da área depois de chute bloqueado de Alan Patrick. Logo em seguida, Carlos de Pena mandou na trave, da entrada da área.

Gol de Alemão sai aos 45 do segundo tempo. Foi chorado e nos acréscimos, que Thauan joga na área, Lucca briga pela bola e a para Alemão, que consegue mandar para o fundo da rede.

FICHA TÉCNICA

Internacional 1 x 0 Metropolitanos

Competição: Segunda rodada da fase de grupos da Libertadores

Local: estádio Beira-Rio, Porto Alegre.

Data e horário: 18 de abril de 2023, às 19h00 (de Brasília)

Árbitro: Yael Falcón.

Auxiliares: Ezequiel Brailovsky e Pablo Gonzalez

Cartão Amarelo: Cova (Metropolitanos), aos 39 do segundo tempo.

Gols: Alemão (Inter), aos 45 do segundo tempo.

Internacional: Keiller; Igor Gomes, Mercado, Vitão; Renê, Baralhas, Johnny (Carlos de Pena), Alan Patrick, Pedro Henrique, Luiz Adriano (Alemão) e Wanderson (Lucca). Técnico: Mano Menezes.

Metropolitanos: Giancarlo Schiavone; Jefre Vargas, Ferro, Cova, Cermeño (Walter Araújo), Gruezo, Laszlo, Larontoda, Robison Flores, Ortíz (Pabón), Freddy Vargas (Diego Castillo). Técnico: José Maria Morr.

Internacional