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

Menos posse de bola e mais agressividade: a tática do Corinthians no Rio

O técnico Vitor Pereira, do Corinthians, durante partida contra o Botafogo - DHAVID NORMANDO/ESTADÃO CONTEÚDO
O técnico Vitor Pereira, do Corinthians, durante partida contra o Botafogo Imagem: DHAVID NORMANDO/ESTADÃO CONTEÚDO

Yago Rudá

Do UOL, em São Paulo

11/04/2022 04h00

Na tarde de ontem (10), em partida contra o Botafogo, o Corinthians de Vítor Pereira terminou, pela primeira vez sob o comando do treinador, uma partida com menos de 50% de posse de bola. Em contrapartida, o Timão criou cinco chances claras de gol e conseguiu 19 desarmes no estádio Nilton Santos — os maiores números nessas estatísticas com a atual comissão técnica.

Na estreia do Campeonato Brasileiro, o técnico Vítor Pereira optou por um time mais leve com sete jogadores formados nas categorias de base entre os titulares (João Victor, Raul Gustavo, Lucas Piton, Du Queiroz, Maycon, Gustavo Mantuan e Willian). Com velocidade nas transições e contando ainda com uma boa performance de seus pontas e laterais, o Timão foi agressivo e anotou três gols ainda no primeiro tempo.

Mesmo nos 45 minutos iniciais, quando o Corinthians dominou a partida e se impôs diante do Botafogo, a equipe foi para o intervalo com 45% de posse de bola. Na segunda etapa, o clube do Parque São Jorge usufruiu da vantagem, sacou Paulinho e Willian, e ou a istrar o resultado. Apesar do gol do Fogão, de pênalti, o Alvinegro não ou por sustos e, segundo Vítor Pereira, demonstrou o 'espírito corintiano' em campo.

"A primeira parte foi de grande nível, não demos chances ao Botafogo e na segunda parte gerimos um pouquinho e vi o espírito corintiano dentro de campo. Muita raça, muita ajuda, é tanta vontade que até exagera", descreveu Vítor Pereira em coletiva de imprensa.

Na segunda etapa, em contra-ataques rápidos, o Timão criou duas chances claras de gol — uma com Adson e outra com Giovane, que realizou sua estreia como profissional no Nilton Santos, que poderiam ter resultado em uma goleada. De acordo com o aplicativo Sofascore, as cinco oportunidades de gol produzidas pelo Corinthians representam a maior produção ofensiva da equipe sob o comando de Vítor Pereira.

Ainda foram 19 desarmes, onze no primeiro tempo e oito no segundo, que ajudam a explicar a vitória do Corinthians diante do Botafogo. No fim da partida, o Timão encerrou o confronto com 44% de posse de bola, número baixo se comparado ao retrospecto da equipe com Vítor Pereira que até então registrava uma média de 66% de posse nos sete primeiros jogos com o português.

Corinthians