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

Matheuzinho sobe como garçom no Flamengo e conta o que aprende com Isla

Lateral-direito Matheuzinho em ação pelo Flamengo - Alexandre Vidal/Flamengo
Lateral-direito Matheuzinho em ação pelo Flamengo Imagem: Alexandre Vidal/Flamengo

Leo Burlá

Do UOL, no Rio de Janeiro

12/10/2021 04h00

Dono da lateral direita do Flamengo com a brecha deixada por Isla, convocado pela seleção do Chile para as Eliminatórias da Copa, Matheuzinho vem dando conta do recado e soma pontos preciosos com Renato Gaúcho.

Preferido por boa parte da torcida, o jovem não esconde a iração pelo chileno e destaca o aprendizado cotidiano com um jogador com bagagem de Europa. Ainda que sua participação seja cada vez mais efetiva, o jogador analisa com tranquilidade a briga por um lugar no time e vê o colega com alguma vantagem momentânea.

"O Isla é um cara que tem muito tempo de Europa, estou aprendendo muito com ele, tem muita experiência. Ele é muito importante por nosso grupo, aprendo muito com ele e com o Rodinei. iro muito o Isla. Sempre que tem oportunidade, ele me aconselha dentro de campo para cortar um caminho ou ar na hora certa. Ele é um cara que tem muita experiência, claro que vejo ele como titular", disse Matheuzinho ao UOL Esporte.

O rubro-negro se refere ao concorrente sempre de forma respeitosa, mas vai somando números que fazem com que a briga seja cada vez mais acirrada. Com mais uma assistência na conta na vitória por 3 a 0 sobre o Fortaleza, o lateral se igualou a Bruno Henrique, Michael e Gabigol no ranking dos "garçons" rubro-negros. Com sete es decisivos, ele só está atrás de Arrascaeta e Vitinho (13) e Everton Ribeiro (8).

Cada vez mais acionado, o jogador já foi acionado 11 vezes por Renato Gaúcho vindo do banco de reservas. Em um grupo que ainda conta com Rodinei como opção, ele festeja as oportunidades.

"Estou muito feliz com essa sequência, quero suprir a ausência do Isla da melhor maneira possível. Pude ajudar o time com mais uma assistência no último jogo. Pretendo dar sequência e seguir focado para ajudar o time da melhor maneira possível quando eu for acionado", celebrou.

Contratado ao Londrina para integrar as divisões de base do Fla, o atleta conseguiu se firmar em um elenco recheado por jogadores consagrados e não nega a alegria por ter conseguido se firmar:

"Foi uma mudança muito grande na minha vida sair de um clube considerado menor para um gigante. Os meninos da base me ajudaram muito na adaptação, mas chegar aqui e ter esse caras como companheiros me ajudou a evoluir e mostrar que sou capaz de estar no meio deles. Até brinco com meu pai que via os caras na TV, jogava vídeo game e hoje estou do lado deles jogando. É a realização de qualquer menino".

Com Isla ainda a serviço da seleção nacional de seu país, Matheuzinho está cotadíssimo para iniciar o jogo de amanhã (13) contra o Juventude, às 19h, no Maracanã, pelo Brasileiro. O rubro-negro volta a treinar hoje e Renato terá um panorama mais claro de quem estará em condições de ir para o jogo.

Flamengo