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

Grêmio vence Ypiranga de novo e é penta do Gauchão depois de 33 anos

Jeremias Wernek

Do UOL, em Porto Alegre

02/04/2022 18h29

Uma, duas, três, quatro, cinco vezes Grêmio. O tricolor gaúcho venceu hoje (02) o Ypiranga-RS por 2 a 1, em Porto Alegre, e confirmou a conquista do quinto título consecutivo do Campeonato Gaúcho. O pentacampeonato chega ao clube depois de 33 anos e mantém a hegemonia estadual mesmo após o rebaixamento à Série B do Brasileirão.

Bruno Alves, no final do primeiro tempo, abriu o placar. No segundo tempo, Rodrigues e Erick fecharam o placar. O Grêmio já havia vencido o jogo de ida, em Erechim, por 1 a 0. Assim, até o empate serviria para deixar a taça na Arena.

O Grêmio não conquistava cinco estaduais seguidos desde 1989, em meio à sequência que rendeu hexa em 1990. Agora, o clube treinado por Roger Machado soma 41 títulos do Campeonato Gaúcho. O Inter segue como maior vencedor, com 45 taças.

O jogo em Porto Alegre foi movimentado, mas sem muitos riscos para o atual campeão. Mesmo que o Ypiranga-RS tenha sido o primeiro da fase de classificação e com bons jogadores, revelações do campeonato.

GRÊMIO ERGUE A TAÇA DO PENTA!

Gols UOL Esporte

Quem foi bem: Diego Porfírio

O lateral esquerdo coroou o bom campeonato com atuação madura na final. Acertado com o Coritiba para a sequência da temporada, o camisa 6 foi quem levou mais perigo ao rival ao longo da decisão na Arena do Grêmio. No início da etapa final, fez boa jogada individual com dribles em sequência.

Bruno Alves garante o título

Contratado no início da temporada, o zagueiro marcou o segundo gol com a camisa do Grêmio e garantiu a conquista. O lance ocorreu após cobrança de falta de Bitello, que explodiu na trave, e teve ainda assistência de Rodrigues — que cabeceou para o centro da área.

Grêmio repete estratégia

Mesmo em casa, o Grêmio seguiu o plano que deu certo no mata-mata. O time de Roger Machado esperou, deu a bola ao adversário e usou a pressão para recuperar a posse e criar chances. Foi assim que Bitello deixou Elias cara a cara com o goleiro Edson, mas o camisa 1 levou a melhor na dividida e salvou o Ypiranga.

GRÊMIO ERGUE A TAÇA DO PENTA!

Gols UOL Esporte

Ypiranga usa bola longa e assusta

O time de Erechim foi para cima do Grêmio, mas com pequenas mudanças. Uma delas foi apostar em lançamento para Diego Porfírio. O lateral esquerdo jogou com liberdade e criou problema para a dupla Campaz e Rodrigues. A melhor chance do Ypiranga, no entanto, veio na bola parada. Em falta do lado da área, Brenno errou ao sair do gol e Hugo Almeida não conseguiu aproveitar.

Dois gols em dois minutos e com VAR

O Grêmio usou a bola parada de novo para fazer gol. E outra vez no rebote. Após a cobrança de Campaz, Rodrigues empurrou para o fundo da rede. O lance foi revisado pelo VAR em análise de quase cinco minutos. Logo depois, o Ypiranga-RS descontou e a jogada também foi observada pelo árbitro de vídeo. O lance foi confirmado mais rápido.

FICHA TÉCNICA
GRÊMIO 2 X 1 YPIRANGA-RS

Data e hora: 02/04/2022 (sábado), às 16h30 (horário de Brasília)
Local: Arena do Grêmio, em Porto Alegre (RS)
Público: 43.889 pessoas (41.913 pagantes)
Renda: R$ 3.244.443,00
Árbitro: Leandro Vuaden
Auxiliares: Rafael da Silva Alves e Tiago Augusto Kappes Diel
VAR: Adriano Milczvski
Cartões amarelos: Ferreira (GRE); Diego Porfírio, Falcão, Rodrigo Carioca (YPI)
Gols: Bruno Alves, aos 46 minutos do primeiro tempo (GRE); Rodrigues, aos 32 minutos do segundo tempo (GRE); Erick, aos 34 minutos do segundo tempo (YPI)

GRÊMIO: Brenno; Rodrigues, Bruno Alves, Geromel e Diogo Barbosa; Villasanti, Bitello, Lucas Silva, Campaz (Janderson) e Ferreira (Gabriel Silva); Elias Manoel (Diego Churín)
Técnico: Roger Machado

YPIRANGA-RS: Edson; Gedeílson, Carlos Alexandre, Bruno Bispo e Diego Porfírio; Lorran (Robson), Falcão, Marcelinho (Cesinha), Erick e Matheus Santos (Jeferson); Hugo Almeida (Rodrigo Carioca)
Técnico: Luizinho Vieira