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

Cristiano celebra chegada ao Flu e volta ao Brasil: 'Não pensei duas vezes'

Cristiano, lateral-esquerdo do Fluminense, em entrevista coletiva - LUCAS MERÇON / FLUMINENSE F.C.
Cristiano, lateral-esquerdo do Fluminense, em entrevista coletiva Imagem: LUCAS MERÇON / FLUMINENSE F.C.

Do UOL, no Rio de Janeiro

21/01/2022 12h50

Reforço do Fluminense nesta janela de transferência, o lateral-esquerdo Cristiano concedeu uma entrevista coletiva na manhã de hoje (21), no CT Carlos Castilho, e afirmou que "não pensou duas vezes" quando recebeu a proposta do Tricolor.

O jogador, que foi anunciado no último dia 14, tinha boa parte dos direitos ligados ao Sheriff, da Moldávia. A negociação, inclusive, foi concretizada após a cúpula do clube das Laranjeiras conseguir resolver um imbróglio nas tratativas.

"Estava lá há quatro anos, é um país bastante frio, e sou aqui do Rio de Janeiro. Quando meu empresário me propôs esse possível interesse do Fluminense, não pensei duas vezes em voltar para o Brasil. Falei com ele: 'Resolve o mais rápido possível, porque eu quero voltar ao Brasil, ainda mais para um time enorme como o Fluminense'", disse.

Cristiano ressaltou estar muito feliz com o acerto com o Flu e apontou à torcida que "não vai faltar empenho" em campo.

"Estou muito feliz de estar aqui. Só quero treinar, só quero jogar. Estou feliz de estar realizando um sonho, estar jogando em um time grandioso como o Fluminense. Não sou muito fã de falar as minhas características, mas a torcida pode ter certeza que não vai faltar empenho. Sou um jogador muito trabalhador, acredito no meu potencial. Feliz de estar aqui, e o professor Abel está tirando o máximo de mim", garantiu.

"Alguns não me conhecem, mas eu joguei a Liga dos Campeões, fiz um campeonato muito bom pelo Sheriff [da Moldávia]. Por isso que o Fluminense se interessou por mim. Torcida pode ter certeza que vou dar o meu máximo, estou ansioso para estrear", completou.

Questionado sobre como gosta de atuar, o lateral não escondeu que prefere o esquema com três zagueiros, mas salientou que o técnico Abel Braga está fazendo os ajustes necessários com o time nesta pré-temporada:

"Abel está fazendo bastante trocas, o que é importante por estarmos na pré-temporada. Me sinto mais à vontade jogando com três zagueiros, mais à frente. Na próxima semana já estreamos e temos mais alguns dias para continuar o treinamento. O professor Abel vai decidir o que fazer melhor".

Fluminense