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

Cruzeiro

Cruzeiro busca feito inédito com Pezzolano para chegar à final do Mineiro

Paulo Pezzolano, técnico uruguaio do Cruzeiro - Thomas Santos/Staff Images
Paulo Pezzolano, técnico uruguaio do Cruzeiro Imagem: Thomas Santos/Staff Images

Victor Martins

Colaboração do UOL, em Belo Horizonte (MG)

11/03/2023 04h00

No Cruzeiro desde o começo de 2022, o técnico Paulo Pezzolano rapidamente conquistou a torcida celeste. O trabalho do treinador uruguaio não demorou para cair nas graças dos cruzeirenses, com uma equipe intensa e bastante ofensiva. O resultado foi o título do Campeonato Brasileiro da Série B e o o garantido após duas tentativas frustradas. Mas sob o comando de Pezzolano, a Raposa ainda não venceu nenhuma equipe da Série A.

Para chegar à decisão do Campeonato Mineiro pela segunda temporada consecutiva, o Cruzeiro terá de quebrar essa tabu. O adversário na semifinal do Estadual é o América-MG, que tem a vantagem de jogar por dois empates, por ter feito melhor campanha na primeira fase do Mineiro. O jejum de nove partidas, que começou antes mesmo da chegada do atual treinador. O primeiro duelo da semi acontece neste sábado, às 16h30, na Arena do Jacaré.

O retrospecto

Sob o comando de Pezzolano foram sete partidas, com um empate e seis derrotas. Em 2022 foram cinco duelos com equipes da Série A e cinco derrotas. O Cruzeiro perdeu os três clássicos que disputou pelo Campeonato Mineiro do ano ado, sendo um para o América-MG e dois para o Atlético-MG, um deles pela decisão do Estadual, que foi em jogo único. Os outros dois confrontos com uma equipe da elite do futebol nacional foram pela Copa do Brasil, diante do Fluminense, nas oitavas de final. O Tricolor venceu as duas partidas, no Maracanã e no Mineirão, e avançou no torneio.

Nesta temporada foram mais dois clássicos no Mineiro, ambos pela primeira fase. Pela 3ª rodada a Raposa foi derrotada pelo América, por 1 a 0, no Estádio Mané Garrincha. Pela 5ª rodada aconteceu o empate em 1 a 1 com o Atlético, no Independência.

Uma vitória nos últimos 12 jogos

O desempenho ruim do Cruzeiro diante das equipes da Série A não está ligada apenas ao período sob o comando de Paulo Pezzolano. A Raposa viveu entre 2020 e 2022 alguns de seus piores anos, longe da elite do futebol nacional e com equipes fracas tecnicamente. Como consequência o Cruzeiro jogou poucas vezes com equipes da Série A nesse período.

Desde o rebaixamento, que aconteceu em dezembro de 2019, o Cruzeiro jogou somente 12 vezes contra equipes da Série A e venceu uma vez. A única vitória foi sobre o Atlético, por 1 a 0, no Mineirão, pelo Campeonato Mineiro de 2021. Os demais resultados foram dez derrotas e um empate.

Os adversários

América-MG - cinco jogos e cinco derrotas

Atlético-MG - cinco jogos, uma vitória, um empate e três derrotas

Fluminense - dois jogos e duas derrotas

Cruzeiro