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

Flamengo

VP acerta com Flamengo 11 dias após dizer que queria 'ir para casa'

Vítor Pereira declarou que só deixou o Corinthians para ficar próximo de sua família, em Portugal - ANTONIO MACHADO/FUTURA PRESS/FUTURA PRESS/ESTADÃO CONTEÚDO
Vítor Pereira declarou que só deixou o Corinthians para ficar próximo de sua família, em Portugal Imagem: ANTONIO MACHADO/FUTURA PRESS/FUTURA PRESS/ESTADÃO CONTEÚDO

Do UOL, em São Paulo

26/11/2022 12h10

Em 13 de novembro o Corinthians foi derrotado pelo Atlético-MG, por 1 a 0, pela rodada final do Campeonato Brasileiro. O jogo marcou a despedida do técnico Vítor Pereira, que suspenso, não ficou no banco de reservas. Após o jogo, o presidente do clube, Duílio Monteiro Alves confirmou a saída do treinador português, alegou problemas particulares para não seguir no Brasil. No dia seguinte, Vítor Pereira reforçou o desejo de voltar para Portugal, para ficar junto de seus familiares. Mas ados 11 dias da entrevista, Vítor Pereira disse sim ao Flamengo.

O português acertou contrato de dois anos com o Rubro-Negro, para substituir Dorival Júnior. O treinador campeão da Copa Libertadores e da Copa do Brasil não teve vínculo renovado para 2023 e já se despediu da torcida.

"Eu me sinto muito triste, queria muito continuar esse projeto, mas não tem hipótese nenhuma. Não vou para clube nenhum, não vou para canto nenhum. Eu vou para casa. Tenho que ajudar a estabilizar um pouco o processo da doença da minha sogra, que está vivendo na minha casa. Por isso, tenho que voltar para lá", disse VP, em entrevista à ESPN, em 14 de novembro, um dia depois de sair do Corinthians.

Vítor Pereira ainda lamentou a impossibilidade de seguir o trabalho no Timão. O treinador rasgou elogios ao elenco alvinegro e chegou a dizer que tinha a vontade de continuar no Corinthians.

"Queria ficar aqui, mas não posso. O dia a dia do Corinthians é um dia a dia de tranquilidade, grande amizade com o presidente. Nunca tive problemas. De vez em quando inventam coisas, mas nunca tive problema. Muito fácil liderar esse elenco, muito fácil", disse o técnico português, que completou.

"Talvez o melhor elenco de toda a minha carreira, porque vive-se ali um ambiente de amizades e pronto. É o que eu tenho a dizer. Toda gente me tratou bem e, agora, sou parte da família corintiana".

"Um amigo que se tornou um irmão"

Como Vítor Pereira estava suspenso na última rodada do Campeonato Brasileiro, por causa da expulsão diante do Coritiba, no jogo anterior, o treinador português não concedeu entrevista coletiva após o confronto com o Atlético-MG. Então coube ao presidente Duílio Monteiro Alves a missão de comunicar aos torcedores que o treinador não seguiria para 2023.

No fim da declaração, o mandatário do Timão chegou a dizer que Vítor Pereira se tornou um irmão após os quase nove meses trabalhando juntos.

"Para finalizar, lógico, quero agradecer ao Vítor, um amigo que se tornou um irmão. É um cara que respeito muito, que fez um grande trabalho aqui, e toda a sua comissão. Foi um ano de muitas experiências positivas", declarou Duílio.

Flamengo