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

Com dedo de Roger, Flu inicia mudanças no elenco para 2021 de Libertadores

Roger Machado participa de avaliações para mudanças no elenco e contratações do Fluminense para 2021 - Thiago Ribeiro/AGIF
Roger Machado participa de avaliações para mudanças no elenco e contratações do Fluminense para 2021 Imagem: Thiago Ribeiro/AGIF

Caio Blois

Do UOL, no Rio de Janeiro

23/02/2021 04h00

Já classificado à Copa Libertadores 2021, o Fluminense inicia o a o mudanças em seu elenco para a próxima temporada. A primeira, ainda a ser anunciada, será a chegada do técnico Roger Machado. Com seu aval, o Tricolor começa a se mexer no mercado da bola.

Apesar das boas notícias em termos de premiação, além das vendas dos direitos econômicos de jovens da base, o Flu não fará grandes investimentos. A ideia é trazer reforços pontuais. O clube irá ao mercado por contratações para o setor ofensivo, e, para isso, está de olho em oportunidades na América do Sul.

A depender das avaliações de Roger, um lateral esquerdo e um volante também podem chegar, mas neste momento, as posições não são tratadas como prioridade. A saída de Hudson, que se reapresentará ao São Paulo, deve fazer a equipe buscar reposição. O jogador não é tido como imprescindível para o novo técnico.

A ideia é 'limpar' um pouco a folha salarial, que terá um incremento de investimento para 2021. Assim, o Flu espera ter espaço para oferecer bons salários para seus reforços, que, apesar de poucos, devem ser utilizados no time titular. Por isso, o Tricolor já adiantou empréstimos. Até agora, a diretoria já acertou com o lateral direito Samuel Xavier, do Ceará, e com o zagueiro Rafael Ribeiro, do Náutico.

A boa notícia para a aclimatação destes novos jogadores numa transição sem pré-temporada é a possibilidade de o Flu conseguir estrear na Libertadores apenas na fase de grupos. O tropeço do São Paulo contra o Botafogo ontem (22) aumentou essa chance: se o time de Marcão vencer o Fortaleza no Maracanã, pela última rodada do Brasileiro, poderá assumir o quarto lugar em caso de empate ou derrota são-paulinos para o líder Flamengo, no Morumbi.

Lembrando que há outro caminho possível para o Fluminense se classificar diretamente à fase de grupos da Libertadores: caso o Palmeiras vença a Copa do Brasil, uma quinta vaga seria aberta no Brasileirão. Isso porque o time alviverde já tem seu lugar garantido na competição como atual campeão.

Caso dispute a chamada pré-Libertadores, o Fluminense precisará enfrentar o Ayacucho (PER) já na primeira semana de março, o que atrapalha o planejamento e a busca por contratações. Caso e pelos peruanos, o Tricolor ainda terá que encarar o vencedor de Independiente Del Valle (EQU) x Unión Española (CHI) para chegar à fase de grupos.

Perfis definidos nas contratações

Ao menos nos perfis, o Fluminense sabe o que busca. Além de um meia de criação e um ponta de velocidade — de preferência que faça os dois lados do ataque —, o Tricolor quer um centroavante mais "cascudo" que seus jovens da base, mas mais jovem que Fred para ser seu reserva imediato.

Uma enxurrada de nomes foi oferecida ao chefe de scout do Flu, Ricardo Correia, nos últimos dias. Com a classificação assegurada à Libertadores, aumentaram as possibilidades na América do Sul, de onde saem boa parte das ofertas. Correia e seu departamento já fizeram suas indicações, que foram avaliadas por Roger Machado, pelo diretor executivo de futebol Paulo Angioni e pelo presidente Mário Bittencourt.

Ainda não há nenhuma negociação fechada nesse sentido, o que deve acontecer nos próximos dias. Assim que se encerrar o Brasileirão, o clube se prepara para anunciar o treinador e os reforços já fechados. O Flu fecha o Nacional na quinta-feira (25), quando recebe o Fortaleza, no Maracanã, às 21h30.

Fluminense