;(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 vence o Athletic de Loco Abreu e entra no G4 do Mineiro

De pênalti, Marcelo Moreno marcou o gol que deu a vitória ao Cruzeiro no Mineirão - Igor Sales/Cruzeiro
De pênalti, Marcelo Moreno marcou o gol que deu a vitória ao Cruzeiro no Mineirão Imagem: Igor Sales/Cruzeiro

Do UOL, em Belo Horizonte

14/03/2021 17h55

Mesmo sem mostrar um futebol de encher os olhos, o Cruzeiro fez seu dever de casa e venceu o Athletic Club por 1 a 0, nesta tarde de domingo (14), no Mineirão. O único gol da partida foi marcado por Marcelo Moreno, de pênalti, no segundo tempo.

Com o resultado, o Cruzeiro entrou na zona de classificação para as semifinais do Campeonato Mineiro, tirando a vaga que estava justamente com o Athletic. Agora a Raposa tem sete pontos em 12 disputados, e está em quarto lugar. O Athletic caiu para o quinto lugar, com seis pontos.

Pelo gol, Moreno é o melhor em campo

Nem Marcelo Moreno e tampouco os outros jogadores do Cruzeiro tiveram boas atuações. Mas pela importância do gol marcado, o boliviano acabou deixando o gramado como melhor da partida. Este foi somente o quarto gol de Moreno desde que retornou ao clube, o primeiro em 2021.

Cruzeiro começa o jogo sem saber o que fazer

A primeira etapa foi praticamente desperdiçada pelo Cruzeiro. O Athletic teve sua parcela de contribuição para anular os anfitriões, mas os jogadores da Raposa tiveram muita dificuldade para saber qual decisão tomar em campo. Após um susto com Loco Abreu nos primeiros minutos, o time até marcou mais presença no ataque, mas explorou demais as bolas pelo alto, todas sem sucesso.

Loco Abreu carimba o travessão

A equipe de São João Del Rei foi responsável pela melhor oportunidade no primeiro tempo e com um jogador para lá de conhecido. Ainda nos primeiros minutos, o uruguaio Loco Abreu ganhou pelo alto e carimbou a trave do goleiro Fábio. Depois disso, o time visitante pouco fez, mas mostrou boa organização em campo, principalmente para segurar as ações ofensivas da Raposa.

Jogo clama por um protagonista, e Moreno se candidata com gol

Com 15 minutos do segundo tempo, a partida seguia fraca tecnicamente, carecendo de um personagem para mudar seu rumo monótono. Esse jogador foi Marcelo Moreno. Primeiro ele viu o goleiro Lee salvar seu peixinho dentro da área. Em seguida, sofreu um pênalti infantil que ele mesmo bateu e converteu para abrir o placar. O boliviano quase colocou tudo a perder dois minutos mais tarde, ao dar uma cotovelada em Nathan. De acordo com o ex-árbitro Sandro Meira Ricci, da TV Globo, o lance era para expulsão de Moreno, que recebeu apenas o amarelo. No decorrer da partida, o jogo seguiu sem outras grandes chances para as duas equipes.

CRUZEIRO 1x0 ATHLETIC

Motivo: 4ª rodada do Mineiro 2021
Data/Hora: 14/03/2021, às 16h (de Brasília)
Local: Mineirão, em Belo Horizonte (MG)
Árbitro: Ricardo Marques Ribeiro
Assistentes: Guilherme Dias Camilo e Roney Faria Lima

GOL: Marcelo Moreno, 15' 2ºT (1-0)
Cartões amarelos: Airton, Marcelo Moreno, Claudinho (CRU), Willian Mococa, Nathan (ATH)
Cartão vermelho: Não teve.

CRUZEIRO: Fábio; Cáceres, Ramón, Eduardo Brock e Matheus Pereira; Adriano, Matheus Barbosa (Jádson) e Marcinho (Claudinho); Airton (William Pottker), Felipe Augusto (Bruno José) e Marcelo Moreno (Rafael Sóbis). Técnico: Felipe Conceição.

ATHLETIC: Lee, Diego Fumaça, Danilo, Sidimar e Nathan; Christian, Gabriel Galhardo (Silvano), Ingro e Willian Júnior (Igor Bádio); Willian Mococa e Loco Abreu (Vitinho). Técnico: Cícero Júnior

Cruzeiro