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

John Kennedy vê reforços como motivação no Flu: "vou aprender com eles"

Vice-artilheiro do Fluminense em 2021, John Kennedy vê reforços no ataque como "motivação" - Lucas Merçon/Fluminense FC
Vice-artilheiro do Fluminense em 2021, John Kennedy vê reforços no ataque como 'motivação' Imagem: Lucas Merçon/Fluminense FC

Caio Blois

Do UOL, no Rio de Janeiro

15/04/2021 04h00

O Fluminense contratou um pacotão de reforços para a Copa Libertadores. Dentre os nomes da lista, dois atacantes: o uruguaio Abel Hernández e o paraguaio Raúl Bobadilla. Mesmo com as contratações, o Tricolor já estava bem servido no setor: reserva imediato de Fred, John Kennedy tem dois gols até aqui em 2021 e é o vice-artilheiro do time, atrás apenas do camisa 9, que balançou as redes cinco vezes.

Espécie de 12º jogador com Roger Machado, o centroavante com nome de ex-presidente americano já tem quatro gols em 14 jogos como profissional. Em entrevista exclusiva ao UOL Esporte, o jovem de 18 anos, que brilhou no sub-20 na última temporada, vê a chegada dos experientes novos companheiros como "motivação" para seguir em boa fase em 2021.

"São muitos jogos ao longo da temporada e acredito que o Roger [Machado] contará com todos durante o ano. São quatro competições muito importantes e existe o desgaste, as lesões e os cartões. São jogadores experientes e vou aprender com eles também. Mas vou continuar me dedicando ao máximo para seguir lutando pelo meu espaço na equipe. Minha motivação aumenta ainda mais para tentar mostrar que tenho condições de ajudar o Fluminense", afirmou.

John Kennedy já marcou quatro gols em 14 partidas como profissional no Fluminense - Lucas Mercon/Fluminense FC - Lucas Mercon/Fluminense FC
John Kennedy já marcou quatro gols em 14 partidas como profissional no Fluminense
Imagem: Lucas Mercon/Fluminense FC

Com personalidade, o mineiro de Itaúna, pequena cidade a 76 km da capital Belo Horizonte, espera seguir aproveitando as chances que teve. Se chegou até a ser titular como centroavante ou até pelas pontas nos primeiros jogos da temporada, John Kennedy marcou duas vezes entrando no segundo tempo. Mas não quer ficar só na reserva.

"Ainda sou muito jovem, tenho apenas 18 anos e subi para o profissional há alguns meses. Acredito que nesse momento o que eu tenho que fazer é aproveitar as oportunidades que o Roger me der. Seja como titular, ou entrando durante os jogos. O Fluminense possui muitos jogadores de qualidade e sei que preciso dar meu melhor no dia a dia para seguir recebendo chance. Quando entro durante os jogos, tem um pouco da questão do cansaço do adversário e busco sempre tentar tirar proveito disso também. Mas quando iniciei entre os titulares me senti bem e isso fica a critério do treinador", disse.

Ainda assim, o jovem de Xerém gosta do status de "reserva de luxo", e ressaltou pedidos do técnico Roger Machado. Veloz para a posição, ele vê a movimentação como fator de diferença em relação aos concorrentes.

"Tento fazer sempre o que o Roger pede, que é iniciar uma marcação forte na saída de bola e dar bastante opção me movimentando nos espaços vazios. Quando iniciamos uma partida na equipe titular, os espaços acabam sendo um pouco reduzidos e o jogo é mais travado. Importante é estar sempre preparado para qualquer situação", opinou.

Artilheiro na base do Fluminense, John Kennedy se destacou por gols contra o Flamengo - Mailson Santana/Fluminense FC - Mailson Santana/Fluminense FC
Artilheiro na base do Fluminense, John Kennedy se destacou por gols contra o Flamengo
Imagem: Mailson Santana/Fluminense FC

Conhecido como "Carrasco" pelos gols contra o Flamengo na base, como o ídolo Assis, o atacante não quis estipular metas de gols para a temporada.

"Meu pensamento é jogo a jogo tentar sempre o meu melhor para ajudar o Fluminense. É claro que para todo atacante, fazer gols é sempre importante. Mas o objetivo precisa ser também no espírito coletivo na busca pelas vitórias. Venho treinando bastante para aproveitar as oportunidades que surgirem e poder transformar elas em gols. Tive uma ótima temporada no sub-20 e agora o meu foco é cada dia mais estar melhor adaptado e preparado para corresponder no profissional", destacou.

Com John Kennedy como opção, o Fluminense enfrenta o Botafogo no sábado (17), às 16h, no Maracanã. Se vencer, o Tricolor se garante nas semifinais do Campeonato Carioca. Com a cabeça na Libertadores, competição em que estreia na próxima quinta-feira (22) contra o River Plate, também em seu estádio, o Flu corre contra o tempo para regularizar o pacotão de reforços.

Anunciado, o zagueiro Manoel está à disposição, e os próximos devem ser Cazares e Abel Hernández. Vindo do Paraguai, Bobadilla ainda precisa acertar seu visto de trabalho, e David Braz contraiu Covid-19. A dupla tende a ser inscrita na competição em uma lista adjunta, e necessitarão de regularização até o dia 20 para estrear na primeira rodada. O prazo para enviar a lista de jogadores é no sábado (17), às 19h15.

Fluminense