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

Renato Gaúcho celebra classificação do Flamengo e reencontro com torcida

Renato Gaúcho, com a torcida do Flamengo ao fundo no Maracanã, em partida entre Flamengo e Grêmio - Thiago Ribeiro/AGIF
Renato Gaúcho, com a torcida do Flamengo ao fundo no Maracanã, em partida entre Flamengo e Grêmio Imagem: Thiago Ribeiro/AGIF

Do UOL, no Rio de Janeiro (RJ)

16/09/2021 00h41

A classificação do Flamengo à semifinal da Copa do Brasil aconteceu com o apoio da torcida, que voltou ao Maracanã nesta noite (15) e pôde acompanhar de perto a vitória por 2 a 0 sobre o Grêmio. Ex-jogador do clube e agora treinador, Renato Gaúcho considerou ter sido um dia especial pelo reencontro com os torcedores, e se mostrou favorável à volta do público aos estádios.

No placar agregado, o duelo terminou 6 a 0 para o time rubro-negro, uma vez que, no jogo de ida, na Arena do Grêmio, bateu o adversário por 4 a 0.

"Dia especial... Muito tempo que não encontrava a torcida do Flamengo a favor (risos). Contra foi um bom tempo, mais feliz ainda pela entrega da equipe. Mais uma vitória, fazendo que a gente e à semifinal de mais uma competição. Muito satisfeito em voltar, reencontrar a torcida e conseguir mais uma vitória", disse.

O comandante se disse favorável ao retorno do público aos jogos e afirmou que "muita gente quer aparecer em cima do futebol", citando outros setores em que há aglomerações e não vê "ninguém tomando providências".

"Eu sou totalmente a favor dos torcedores voltarem aos estádios. Você tem um jogador de futebol que gosta da torcida no estádio, tem o cantor, tem o ator de teatro... E ele quer o público. Seguindo os protocolos, qual é o problema? Vejo que muita gente quer aparecer em cima do futebol. Todo mundo acha que não pode entrar torcedor no estádio. Eu vejo tantas aglomerações por aí... Não sou eu quem vai dizer, mas não vejo ninguém tomando providências", apontou Renato, que completou:

"Não vejo ninguém se importando tanto. Por que só no futebol? Por que tem uma câmera? Tem pessoas aparecendo? Se tiver que acabar com o público no futebol, que acabe em todos os locais. Eu vejo show de artistas, que eu não sou contra, vejo outros tipos de shows e não vejo ninguém comentar, não vejo ninguém proibir. Então, é o tal do futebol. O futebol faz com que todos apareçam na televisão. Se querem coibir o público do futebol, que partam para os outros locais também. Essa é minha opinião".

Questionado sobre estreia do zagueiro David Luiz, reforço recém-chegado à Gávea, o treinador adotou cautela.

"Ele é um grande profissional. Já conversei algumas vezes para saber as condições dele. É um jogador que está parado desde maio, vem de um procedimento. Estava treinando, e, quando chegou ao Flamengo, na segunda-feira, fez exames. Os exames dele foram bons, mas é válido também para os jogadores que estão no departamento médico. Vou conversando com eles, trocando ideias. No momento em que estiver 100%, estiver se sentindo bem, é lógico que vamos utilizar. Mas, por enquanto, é importante recuperar a forma física, a musculatura dele. Como já falei, ele vem de um procedimento de cinco meses parado. Então, temos que pensar direito para não jogar ele sem as devidas condições e ele sofrer outro tipo de lesão", salientou.

Flamengo