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

Corinthians

Sob o comando de Mancini, Vital se torna mais efetivo no Corinthians

Gustavo Mosquito e Mateus Vital (à dir.) comemoram gol do Corinthians contra o Sport - Marcello Zambrana/AGIF
Gustavo Mosquito e Mateus Vital (à dir.) comemoram gol do Corinthians contra o Sport Imagem: Marcello Zambrana/AGIF

Yago Rudá

Colaboração para o UOL, em São Paulo

05/03/2021 04h00

Outrora questionado pelo seu rendimento com a camisa do Corinthians, o meia Mateus Vital apresentou significativa melhora sob o comando de Vagner Mancini. Depois de uma conversa franca com o treinador, o camisa 22 ou a jogar mais próximo do gol adversário, arriscar mais os chutes de fora da área e, em 20 partidas, teve participação direta em cinco gols da equipe. Antes, o jogador precisou de quase 12 jogos para participar de um gol do Timão.

Vital foi peça essencial no clássico da última quarta-feira (3), contra o Palmeiras, na Neo Química Arena. Além de ter feito o primeiro gol do Corinthians no Dérbi, o meia deu o e para Rodrigo Varanda marcar e definir o empate em Itaquera. Ao fim da partida, o jogador ganhou elogios do treinador, que relembrou uma conversa com o atleta logo em sua chegada ao clube.

"O Mateus fez mais um grande jogo. É um atleta que, desde que eu cheguei ao Corinthians, tem melhorado, tem evoluído. Converso muito com os atletas, já conversei muito com o Mateus sobre essa grande capacidade técnica, de força que ele tem. Isso precisa ser canalizado para um jogo mais efetivo. Ele não pode se desgastar, como vinha acontecendo antes, numa faixa do campo que não representa nada em termos táticos e técnicos", explicou Mancini, após o Dérbi na Neo Química Arena.

Mateus Vital foi contratado pelo Corinthians junto ao Vasco na intertemporada de 2017 para 2018. De lá para cá, o meia fez 158 jogos, fez dez gols e distribuído sete assistências. Na prática, desconsiderando os números com Mancini, jogador precisava de quase 12 partidas para ter participação em um único gol da equipe.

Agora, com a nova comissão técnica, o meia ou a ser mais efetivo. Na reta final do Campeonato Brasileiro, Vital balançou as redes contra Botafogo, Fluminense e Sport. Na última quarta, diante do Palmeiras, um gol e uma assistência no Dérbi. Os números ainda não tímidos, mas com Mancini, o camisa 22 participa de um gol do Corinthians a cada quatro partidas.

A melhora foi notada pela diretoria. Recentemente, Vital recebeu uma proposta do Real Salt Lake, que disputa a Major League Soccer (MLS), e o Corinthians optou em manter o atleta em seu elenco.

Corinthians