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

Jô supera má fase, ressurge no Corinthians e iguala Sócrates no Brasileirão

Yago Rudá

Do UOL, em São Paulo

09/07/2021 04h00

A vida do centroavante Jô sofreu uma reviravolta nas últimas semanas. Depois de ser alvo de críticas da torcida após usar uma chuteira cuja tonalidade parecia verde e ver a Gaviões da Fiel, principal organizada do Corinthians, pedir sua saída do clube, o jogador deu a volta por cima, se tornou o artilheiro da equipe no Campeonato Brasileiro e, de quebra, igualou o ídolo Sócrates.

Desde a chegada do técnico Sylvinho ao clube do Parque São Jorge, há pouco mais de um mês, Jô deixou a condição de reserva para se tornar o protagonista da equipe. Nos últimos cinco jogos, marcou todos os quatro gols do time (excluindo aqui um gol contra de Maidana na vitória sobre o Sport) e agora tem a mesma soma de Sócrates pelo Corinthians em partidas do Brasileirão: 41 gols. Eles são os vice-artilharios do clube na competição, atrás apenas de Marcelinho Carioca, que marcou 52 vezes.

O que chama a atenção na reviravolta de Jô nesta temporada é a velocidade com que os fatos se suderam. No início do Campeonato Brasileiro, o jogador estava no banco de reservas e teve sua primeira oportunidade como titular na quinta rodada, contra o Bahia, no dia 20 de junho. Naquele jogo, o camisa 77 utilizou uma chuteira de azul-turquesa, que, pela TV, parecia verde —causou ira entre os torcedores.

Na ocasião, o Corinthians informou que havia multado Jô e a Gaviões da Fiel, principal organizada do clube, aproveitou uma reunião previamente agendada com o presidente Duilio Monteiro Alves para pedir a demissão do jogador. De lá para cá, o centroavante desandou a marcar gols, fez quatro em cinco partidas, e ajudou o Corinthians a conquistar seis jogos de invencibilidade no Brasileirão.

Segundo Sylvinho, a entrada de Jô na equipe se deu por uma série de adversidades que dificultaram a utilização de outros atacantes no duelo contra o Bahia. Contudo, desde que ganhou a oportunidade, o experiente centroavante, de 34 anos, ou a corresponder aos pedidos da comissão técnica e retomou a posição entre os titulares.

"Ele teve um período em que não era titular na nossa chegada. Ele esteve no banco, não jogou em alguns momentos, acho que até fora por uma pequena lesão de panturrilha. Vinha jogando pouco e se recuperando fisicamente. Em um determinado momento, esse é o futebol, nós precisamos de um centroavante em um determinado jogo e o atleta respondeu, tem qualidade. Temos pedido para o Jô uma retenção, alguns posicionamentos e ele tem atendido. O atleta responde, nós colocamos conceitos, mas ele tem respondido bem. É algo bom para o Corinthians e as coisas vão caminhando", afirmou Sylvinho em coletiva de imprensa.

Neste momento, Jô é o principal jogador do Corinthians e o artilheiro da equipe na temporada, com sete gols em 2021. No Brasileirão, está atrás apenas de Gilberto, do Bahia (sete gols), Edenilson, do Internacional (cinco gols), e Matheus Peixoto, do Juventude (cinco gols), na lista de goleadores da competição nacional.

Corinthians