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

Brasileirão - 2021

Veiga faz dois, Palmeiras vira o jogo em quatro minutos e bate o Grêmio

Raphael Veiga comemora gol pelo Palmeiras contra o Grêmio - Pedro H. Tesch/AGIF
Raphael Veiga comemora gol pelo Palmeiras contra o Grêmio Imagem: Pedro H. Tesch/AGIF

Marinho Saldanha

Do UOL, em Porto Alegre

31/10/2021 18h00

Com um gol aos 46 e outro aos 50 do primeiro tempo, ambos de Raphael Veiga, o Palmeiras virou o jogo e venceu o Grêmio, hoje (31), na Arena, pela 29ª rodada do Campeonato Brasileiro. Breno Lopes, já nos acréscimos, definiu o placar de 3 a 1, que fez o Verdão diminuir a diferença em relação ao Atlético-MG e retomar a segunda colocação. Diego Souza fez o gol gremista.

Como venceu ontem (30), o Flamengo tinha tomado a vice-liderança. Agora com 52 pontos, o Palmeiras reassume o posto e tira parte da distância para o Galo, que lidera a competição com 59. Já o Grêmio segue em penúltimo, com 26 pontos

O próximo jogo do Grêmio será na quarta-feira (3), contra o Atlético-MG. Já o Palmeiras só volta a campo no domingo (7), para encarar o Santos.

Foi bem: Raphael Veiga faz dois gols

Raphael Veiga foi personagem da virada do Palmeiras no primeiro tempo. Depois de ver seu time sair atrás, o meia marcou um gol de pênalti e outro de fora da área.

Foi mal: Thiago Santos comete pênalti

O Grêmio ganhava o jogo e levaria a vitória parcial para os vestiários ao fim do primeiro tempo. Mas, nos acréscimos, Thiago Santos cometeu pênalti em Marcos Rocha, empurrando o rival em um lance em velocidade. Depois do empate veio a virada.

Escolhido por Abel, Scarpa dá mais uma assistência

Escolhido por Abel Ferreira para começar o jogo, Gustavo Scarpa deu mais uma assistência. No fim do primeiro tempo, encontrou Raphael Veiga na entrada da área para o gol da virada. Antes, no princípio da partida, já tinha acertado a trave em cobrança de falta.

Grêmio tem gol anulado no fim

Elias Manoel tinha marcado o gol de empate do Grêmio aos 40 do segundo tempo, mas foi anulado após revisão do VAR. Em lance difícil, a arbitragem marcou impedimento após traçar as linhas digitais.

Cronologia da partida

Diego Souza abriu o placar para o Grêmio aos 11 minutos do primeiro tempo. Mas o Palmeiras virou ainda na etapa inicial com gols aos 46 minutos, de pênalti, e aos 50 minutos, ambos de Raphael Veiga. Já nos acréscimos do segundo tempo, aos 49 minutos, Breno Lopes definiu placar.

O jogo do Grêmio: Início bom, mas virada relâmpago

O Grêmio começou bem a partida. Com marcação agressiva e bem firme defensivamente, o time gaúcho pulou na frente após boa jogada de Douglas Costa, que retomou pela esquerda e cruzou para Diego Souza. Utilizar Douglas pelo flanco canhoto, por sinal, foi ação de Vagner Mancini para buscar espaços na defesa palmeirense. Deu certo por boa parte do jogo, e dos pés dele surgiram as melhores oportunidades da equipe.

O jogo do Palmeiras: Virada relâmpago no primeiro tempo

O Palmeiras fazia um jogo regular. Sofreu com as boas investidas de Douglas Costa em cima de Marcos Rocha, levou um gol e Weverton evitou o que seria o segundo. Chegava pouco ao ataque, ainda que tivesse acertado a trave em cobrança de falta. Mas teve inteligência emocional ao longo do jogo. Não se desesperou ou desorganizou e foi premiado pouco antes do encerramento da etapa inicial. Com pênalti que virou gol aos 46 minutos, e virada aos 50, o cenário se alterou totalmente para etapa final e a vitória foi consolidada com gol de Breno Lopes.

FICHA TÉCNICA
GRÊMIO 1 X 3 PALMEIRAS

Data: 31/10/2021 (Domingo)
Local: Arena do Grêmio, em Porto Alegre (RS)
Árbitro: Savio Pereira Sampaio
Auxiliares: Daniel Henrique da Silva Andrade e José Reinaldo Nascimento Junior
VAR: Igor Junio Benevenuto de Oliveira
Público: 14.207 (total)
Renda: R$ 650.212,00
Cartões amarelos: Kannemann, Jean Pyerre, Thiago Santos, Alisson, Vagner Mancini [técnico] (GRE); Felipe Melo (PAL)
Gols: Diego Souza, do Grêmio, aos 11 minutos do primeiro tempo; Raphael Veiga, do Palmeiras, aos 46 e aos 50 minutos do primeiro tempo; Breno Lopes, do Palmeiras, aos 49 minutos do segundo tempo;

GRÊMIO
Brenno; Vanderson, Kannemann, Geromel e Cortez; Thiago Santos (Lucas Silva), Villasanti (Campaz) e Jean Pyerre (Jhonata Robert); Douglas Costa, Alisson (Churín) e Diego Souza (Elias Manoel).
Técnico: Vagner Mancini

PALMEIRAS
Weverton; Marcos Rocha, Luan, Gustavo Gómez e Piquerez; Felipe Melo, Zé Rafael (Danilo), Raphael Veiga (Breno Lopes), Dudu (Luiz Adriano) e Scarpa (Wesley); Rony (Danilo Barbosa).
Técnico: Abel Ferreira