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

Rodolfo Rodrigues

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Flamengo é o 1º campeão a vencer todos os jogos das oitavas até a final

Jogadores do Flamengo comemoram gol contra o Athletico na final da Libertadores -  Hector Vivas/Getty Images
Jogadores do Flamengo comemoram gol contra o Athletico na final da Libertadores Imagem: Hector Vivas/Getty Images

Colunista do UOL

29/10/2022 18h58

Campeão invicto da Libertadores de 2022, sendo o 8º clube a conseguir essa façanha desde 1960, o Flamengo se tornou o primeiro clube a conquistar o título do principal torneio sul-americano vencendo todos os jogos dos mata-matas, desde as oitavas de final.

Foram quatro mata-matas, com 100% de aproveitamento. Nas oitavas, o rubro-negro venceu o Tolima, da Colômbia, por 1 x 0, fora de casa. Na volta, no Maracanã, atropelou os colombianos com uma goleada por 7 x 1. Nas quartas de final, venceu duas vezes o Corinthians: 2 x 0 em São Paulo e 1 x 0, no Rio. Na semifinal, goleou o Vélez Sarsfield, por 4 x 0, em Buenos Aires e confirmou a classificação para a final com nova vitória, por 2 x 1, no Maracanã. Já na final deste sábado (29), venceu o Athletico-PR por 1 x 0, em Guayaquil.

Com nove vitórias seguidas, contando ainda dois jogos da fase de grupos, o Flamengo igualou o recorde de vitórias seguidas do Palmeiras na história da Libertadores, entre 2021 e 2022. Na primeira fase, o Flamengo venceu cinco dos seus jogos e só empatou um, contra o Talleres, por 2 x 2, na Argentina.

Com 32 gols marcados, o Flamengo igualou também o seu recorde de gols em uma única edição, de 2021, quando também marcou 33 gols. Com apenas uma derrota nos seus últimos 30 jogos da Libertadores (na final de 2021, para o Palmeiras, na prorrogação), o Flamengo tem uma série de 13 jogos sem derrota no geral e 20 partidas de invencibilidade em casa.

Campanha do Flamengo no título da Libertadores de 2022:
Fase de grupos

5/4 - Sporting Cristal-PER 0 x 2 Flamengo
12/4 - Flamengo 3 x 1 Talleres-ARG
28/4 - Universidad Católica-CHI 2 x 3 Flamengo
4/5 - Talleres-ARG 2 x 2 Flamengo
17/5 - Flamengo 3 x 0 Universidad Católica-CHI
25/5 - Flamengo 2 x 1 Sporting Cristal-PER

Oitavas de final
29/6 - Tolima-COL 0 x 1 Flamengo
6/7 - Flamengo 7 x 1 Tolima-COL

Quartas de final
2/8 - Corinthians 0 x 2 Flamengo
9/8 - Flamengo 1 x 0 Corinthians

Semifinal
31/8 - Vélez Sarsfield-ARG 0 x 4 Flamengo
7/9 - Flamengo 2 x 1 Vélez Sarsfield-ARG

Final
29/10 - Flamengo 1 x 0 Athletico-PR

Siga Rodolfo Rodrigues no Instagram

Siga Rodolfo Rodrigues no Twitter