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

Dorival roda elenco do Flamengo e ganha opções com resposta positiva

Jogadores do Flamengo celebram gol sobre o Atlético-GO, no Maracanã, pelo Brasileiro - Marcelo Cortes / Flamengo
Jogadores do Flamengo celebram gol sobre o Atlético-GO, no Maracanã, pelo Brasileiro Imagem: Marcelo Cortes / Flamengo

Do UOL, no Rio de Janeiro (RJ)

01/08/2022 04h00

Em meio à maratona do calendário e à chegada de reforços ao Flamengo, o técnico Dorival Júnior gira o elenco e vê opções darem respostas positivas, incluindo alguns jovens da base que estão ganhando espaço. Um exemplo é Victor Hugo, que se tornou destaque na vitória sobre o Atlético-GO, quando o treinador mandou a campo uma equipe alternativa.

Com cinco titulares poupados por causa do duelo com o Corinthians amanhã (2), pela Libertadores, o triunfo sobre o Dragão contou com gols dos crias Lázaro, Victor Hugo —que foi um dos melhores em campo— e de Marinho, que busca um recomeço na Gávea após um início de trajetória aquém do esperado. Novidade nesta janela, Vidal também deixou o dele.

O gol de Lázaro, inclusive, foi uma construção de jogadores da base. Matheuzinho roubou a bola, acionou Victor Hugo, que cruzou para o camisa 13.

"Entra Victor Hugo, Matheus França, Lázaro, Vitinho procurando o gol a todo instante. É disso que precisamos e queremos que continue acontecendo. Aquele que espera a oportunidade precisa fazer o que precisa ser feito, que se entregue, se dedique, que se busque a melhor condição. Hoje, Victor fez uma partida brilhante em todos os sentidos. Não só plasticamente, mas taticamente foi muito importante. Ele preencheu função que foi fundamental nas definições. Ele e o Lázaro foram primordiais para abrir espaço e foram decisivos na partida", disse Dorival, após o jogo do último sábado.

Balanço do trabalho

Dorival, que foi o escolhido para ocupar a vaga deixada por Paulo Sousa, foi anunciado no dia 10 de junho. Ao fazer um balanço do trabalho até aqui, fez elogios ao elenco, classificando como "absurdo".

"O elenco do Flamengo é um absurdo, que treinador não queria ter um grupo desse em mãos? Tentamos achar um norte para que eles seguissem aquilo que estava definido, determinado. Mudamos pequenas coisas e alguns posicionamentos que foram importantes. Mas sempre respaldados pelo que foi deixado. Tentamos ao máximo possível desenvolver a equipe para que desse esse salto."

Primeiro treino

Pulgar e Varela fazem primeiro treino no CT do Flamengo - Marcelo Cortes / Flamengo - Marcelo Cortes / Flamengo
Imagem: Marcelo Cortes / Flamengo

Até aqui, nesta janela, foram anunciados o atacante Cebolinha, os volantes chilenos Vidal e Pulgar, e o lateral-direito uruguaio Guillermo Varela. Os três primeiros, inclusive, já foram inscritos para as quartas de final da Libertadores.

Recém-chegados, Pulgar e Varela fizeram o primeiro treino no CT Ninho do Urubu ontem. O chileno não entra em campo desde o dia 20 de maio, no empate em 1 a 1 do Galatasaray com o Antalyaspor.

Varela, por sua vez, desembarcou no Rio de Janeiro na noite da última quinta-feira e ainda aguarda o trâmite para ser regularizado. Ele estava no Dínamo de Moscou, da Rússia, e deixou o clube sob a cláusula da Fifa que permitiu aos atletas suspenderem seus contratos por um ano, por causa da guerra entre Rússia e Ucrânia.

Dorival vem adotando cautela quanto à utilização dos reforços, como indicou ao ser questionado sobre a possibilidade de Vidal ser titular contra o Timão.

Flamengo