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

Flamengo

Covid, baixas, jovens sem hora para chegar e 5 a 0: os desafios do Fla

Jogadores do Flamengo lamentam derrota para o Independiente del Valle na Libertadores  - Pool/Getty Images
Jogadores do Flamengo lamentam derrota para o Independiente del Valle na Libertadores Imagem: Pool/Getty Images

Leo Burlá

Do UOL, no Rio de Janeiro

22/09/2020 04h00

A agem do Flamengo pelo Equador abalou as estruturas do clube e um time em pedaços entra hoje (22) em campo para encarar o Barcelona, às 19h15, no Monumental, pela Copa Libertadores.

Não bastasse o terremoto causado pela goleada de 5 a 0 imposta pelo Independiente del Valle (EQU), resultado que colocou em xeque o trabalho de Domènec Torrent, a delegação foi varrida por um surto de Covid, drama que já tirou de combate Isla, Filipe Luís, Diego, Vitinho, Bruno Henrique, Michael e Matheuzinho. Com problemas na coxa, Gabigol é outra baixa.

O goleiro Diego Alves e o atacante Pedro Rocha sequer viajaram e já estavam fora de combate. Ao todo, o espanhol tem nada menos que 11 desfalques, o que representa um time inteiro. Em tempos de dificuldades no Fla, um desafio extra a ser superado.

Torrent viajou com 25 jogadores, mas só tinha 17 à disposição para a última atividade antes do jogo desta terça-feira. Isso se contado o zagueiro Gustavo Henrique, expulso contra o Del Valle e outra baixa conformada para a decisão de hoje. O clima é de tensão e o Fla tenta juntar os cacos para sacudir a poeira contra o lanterninha do Grupo A.

"A equipe vai bem. Primeiro já tira fato dos 2.800 metros [de altitude], aqui já estamos no nível do mar. A gente, imediatamente após o jogo de Quito, já estava dentro do avião fretado para vir para Guayaquil. Isso é trabalho de união, de outras pessoas. As pessoas aqui trabalham com excelência", disse o vice de futebol Marcos Braz, antes de a pandemia atacar o grupo.

O momento é tão conturbado que até um fenômeno natural atrapalhou a vida rubro-negra. No domingo, o vulcão Sangay entrou em atividade e fez o treino ser cancelado. Ontem, a questão se normalizou e os jogadores disponíveis puderam ir ao campo.

Para minimizar os estragos, o Rubro-Negro fez uma operação de guerra para conseguir embarcar o lateral direito João Lucas, o zagueiro Natan e os atacantes Guilherme Bala e Rodrigo Muniz. O voo ficou retido em Goiânia até o sinal verde para decolagem. Neste mesmo jato, os infectados serão trazidos de volta para o Brasil.

Ante o furacão que varre o Flamengo desde a última quinta-feira (17), a partida desta noite ganhou um caráter de decisão fora de hora na Gávea. Uma performance ruim, ainda que todo o cenário seja levado em conta, pode agitar ainda mais as estruturas dos atuais campeões do continente. Por outro lado, sair de campo com os três pontos seria uma demonstração de força e um possível recomeço na temporada.

FICHA TÉCNICA:

BARCELONA-EQU x FLAMENGO

Data: 22 de setembro de 2020 (terça-feira)
Horário: 19h15 (de Brasília)
Local: Estádio Monumental, Guayaquil, Equador
Árbitro: Diego Haro (PER)
Assistentes: Jonny Bossio (PER) e Michael Orue (PER)

BARCELONA-EQU: Burrai; Castillo, Aimar, Riveros e Vallecilla; Marques, Piñatares, Martínez e Arroyo; Díaz e Angulo (Alvez). Técnico: Fabián Bustos.

FLAMENGO: César; Arão (João Lucas), Rodrigo Caio, Léo Pereira e Renê; Thiago Maia, Everton Ribeiro, Gerson, Arrascaeta; Pedro e Lincoln. Técnico: Domènec Torrent.

Flamengo