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

Atlético-MG

Capitão Réver celebra volta de Cuca: "sabe o que representa o Atlético-MG"

Réver foi o capitão do Galo e jogador da confiança de Cuca na campanha do título alvinegro na Copa Libertadores de 2013 - AFP PHOTO / VANDERLEI ALMEIDA
Réver foi o capitão do Galo e jogador da confiança de Cuca na campanha do título alvinegro na Copa Libertadores de 2013 Imagem: AFP PHOTO / VANDERLEI ALMEIDA

Guilherme Piu

Do UOL, em Belo Horizonte

08/03/2021 04h00

A diretoria do Atlético-MG anunciou na última semana a contratação do técnico Cuca, que vai ocupar a vaga deixada pelo argentino Jorge Sampaoli, nova aposta do Olympique de Marselha (FRA). E o novo treinador chegará à Cidade do Galo para reencontrar jogadores com quem trabalhou no próprio Alvinegro. Caso, por exemplo, do zagueiro Réver.

Capitão do Atlético-MG na campanha do título da Copa Libertadores de 2013, quando Cuca era o treinador, Réver comemorou bastante o acerto do "velho amigo" com o Galo. "Foi uma decisão muito acertada da diretoria do Atlético-MG. O Cuca é muito competente, é vencedor e sabe o que representa a camisa do Galo", comemorou o zagueiro em conversa com o UOL Esporte.

Um dos zagueiros com mais gols na Série A do Campeonato Brasileiro (são 33 gols na era dos pontos corridos, mesmo número de Leonardo Silva), Réver fala em felicidade pelo reencontro com Cuca na Cidade do Galo, local onde a dupla fez muito sucesso entre 2012 e 2013. "Particularmente, estou muito feliz em poder voltar a trabalhar com ele. Tenho certeza que ele irá nos ajudar nos objetivos que temos para 2021. Que venha uma nova temporada para que juntos possamos novamente marcar a história do Galo", disse.

Réver volta aos trabalhos no centro de treinamento atleticano hoje (8) após um recesso de dez dias que foi concedido aos atletas que mais partidas disputaram no Brasileirão 2020. Como os jogadores não tiveram férias em dezembro como acontece de costume — por causa dos impactos da pandemia da covid-19 no calendário esportivo no Brasil —, o zagueiro ainda não jogou no Campeonato Mineiro deste ano. Fato que acontecerá com Cuca, que deve manter o camisa 4 na equipe titular.

Atlético-MG