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

Fluminense

Roger exalta Xerém após goleada do Flu: "Precisava ver os meninos jogando"

Roger Machado elogiou atuação do Fluminense na vitória sobre o Macaé pelo Campeonato Carioca - Lucas Merçon/Fluminense FC
Roger Machado elogiou atuação do Fluminense na vitória sobre o Macaé pelo Campeonato Carioca Imagem: Lucas Merçon/Fluminense FC

Caio Blois

Do UOL, no Rio de Janeiro

07/04/2021 01h00

O Fluminense goleou o Macaé por 4 a 0, e para Roger Machado, com boa atuação. Em coletiva de imprensa, o técnico valorizou o resultado e a performance da equipe, que entrou na zona de classificação do Campeonato Carioca com a vitória sobre o lanterna.

"Salientei para os atletas no final do jogo que melhor do que o resultado foi o que nós produzimos. Não só do ponto de vista ofensivo, mas pelo todo, [por] a gente ter feito uma partida segura. Mesmo quando o adversário teve a bola, a gente conseguiu impedir que o adversário pudesse gerar consequência no nosso sistema defensivo. Eu acho que o placar foi compatível com a atuação. Foi construído em dois tempos distintos: no primeiro tempo foi um placar mínimo e no segundo a gente conseguiu um 3 a 0", opinou.

Roger também exaltou jovens de Xerém como Kayky, que abriu o placar da vitória com um belo gol. Novidade no time titular, o jovem de 17 anos foi o melhor em campo do Flu em Volta Redonda.

"A ideia que a gente tinha era proporcionar jogadores dentro do campo que têm a vitória pessoal, o um contra um forte, insinuante nos dribles, mas que quando estão dentro do bloco ajude atrás das linhas. Kayky é um jogador que pode crescer com a bola e achar soluções. Acho que ele aproveitou bem a oportunidade. Era um desejo desde o início. Precisava ver os meninos jogando para que pudessem nos ajudar no decorrer do ano. Que bom que puderam ajudar para uma vitória importante", declarou.

Apesar de falar como se estivesse realizando testes, o treinador rechaçou que o Carioca seja um laboratório para a Libertadores. Mesmo assim, itiu ainda ter dúvidas e promover mudanças na equipe titular.

"São duas vias: amadurecer o time para a Libertadores sem deixar de valorizar o Estadual. Não gostaria de ter o Carioca como laboratório de forma pejorativa. É uma oportunidade que temos de ver atletas em campo em jogos mais pesados, atletas mais jovens que podem nos ajudar. Quando houver oportunidade e o jogo permitir, não tenha dúvida que eu vou querer utilizá-los. Mas também tem a segunda via, que é amadurecer o time, encaixando as peças para as finais do campeonato e a Libertadores que se avizinha", disse.

Fluminense