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

Fla vence teste de paciência por Kenedy e mira ao menos mais dois reforços

Leo Burlá

Do UOL, no Rio de Janeiro

16/08/2021 04h00

O Flamengo cercou Kenedy, testou a paciência do Chelsea (ING) e levou a melhor. Após o "ok" dos ingleses, o Fla fechou o empréstimo por um ano do atacante, que deve chegar ao Rio de Janeiro na terça-feira.

Com uma missão cumprida, a cúpula de futebol espera ao menos acertar mais dois alvos dentre os nomes que estão na mira. O meio é prioridade, mas está em curso a busca por um zagueiro. Os nomes são tratados com sigilo, mas Lyanco, do Torino, foi avaliado. O negócio, no entanto, é tratado como muito complicado.

Sonho de consumo desde o início do semestre, Thiago Mendes ficou um pouquinho mais longe ante a insistência do Lyon (FRA) em fixar a obrigatoriedade de compra do jogador após o fim do empréstimo pretendido pelos rubro-negros.

A negociação se arrastou por reuniões na cidade sa, mas os dirigentes do clube se mostraram irredutíveis. O diretor esportivo Juninho Pernambucano e o presidente Jean-Michel Aulas querem reaver ao menos parte do investimento feito na contratação do ex-São Paulo.

O otimismo já foi maior para a transação, mas o Fla faz um recuo estratégico sem deixar de monitorar os os do volante. Caso o período de transferências avance e Mendes não seja negociado, a tendência é que o Rubro-negro volte à carga.

Outra possibilidade que surgiu na última semana foi a de Andreas Pereira, do Manchester United. Os cariocas já manifestaram aos ingleses o seu interesse, mas o jogo também deve ser duro, embora o clima entre os integrantes do departamento de futebol seja de absoluto otimismo.

Sem muita grana em caixa, o Fla tenta minimizar os custos no negócio e usa do poder de convencimento para fazer com que os "Red Devils" arquem com parte dos salários do jogador. Um desfecho deve ocorrer essa semana, mas há ainda debate sobre os valores a serem pagos em caso de exercício da compra.

Andreas Pereira está na mira do Flamengo - Phil Noble/REUTERS - Phil Noble/REUTERS
Andreas Pereira está na mira do Flamengo
Imagem: Phil Noble/REUTERS

Pereira, por sua vez, vê com bons olhos a chance de atuar pela primeira vez no país. Belga com nacionalidade brasileira, o atleta deu um sinal positivo para o Flamengo, que tenta se entender com o clube. A informação foi publicada pela "TNT".

"Conheço o futebol dos dois (Kenedy e Andreas), mas eu só comento sobre jogador quando ele assina contrato. Já vi muita coisa no futebol. Converso com a diretoria, mas só me manifesto sobre os jogadores quando assinam contrato", disse o técnico Renato Gaúcho.

De olho no tri da Libertadores, os rubro-negros encaram na quarta (18) o Olimpia (PAR), às 19h15, no Mané Garrincha. No jogo de ida válido pelas quartas de final, goleada dos cariocas por 4 a 1.

Flamengo