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

De olho no Majestoso, Vítor Pereira comanda primeiro tático no Corinthians

Vítor Pereira e Renato Augusto conversam no CT Joaquim Grava - Rodrigo Coca/ Ag. Corinthians
Vítor Pereira e Renato Augusto conversam no CT Joaquim Grava Imagem: Rodrigo Coca/ Ag. Corinthians

Yago Rudá

Do UOL, em São Paulo

02/03/2022 20h29

Pensando no clássico do próximo sábado (5), contra o São Paulo, o português Vítor Pereira comandou hoje (2) o primeiro treino tático no CT Joaquim Grava desde que chegou ao Corinthians. A baixa no Timão ficou por conta do volante Roni, que sentiu um desconforto muscular na posterior da coxa direita, e não trabalhou com bola.

De acordo com as informações divulgadas pela assessoria de imprensa do clube, a nova comissão técnica do Corinthians dividiu o treinamento em três partes. Na primeira, para ativar a musculatura dos atletas, uma atividade de posse de bola em campo reduzido e muita movimentação do elenco em campo.

Na segunda parte, o treinador fez o primeiro tático no clube do Parque São Jorge e começou a fazer o esboço da equipe que deve enfrentar o São Paulo, no Morumbi, no fim de semana. A tendência, embora não tenha sido confirmada pelo Corinthians, é de que os titulares se mantenham com Cássio; Fagner, João Victor, Gil e Lucas Piton; Du Queiroz, Paulinho, Giuliano e Renato Augusto; Willian e Róger Guedes.

Por fim, na etapa final das atividades no CT Joaquim Grava, alguns jogadores fizeram um complemento de finalizações, tanto em bola rasteira como nos cabeceios. Os nomes não foram revelados.

O volante Roni sentiu dores no músculo posterior da coxa direita e foi vetado pelo departamento médico. O jogador ficou sob os cuidados dos fisioterapeutas e, a princípio, a situação não preocupa. Amanhã pela tarde, na reapresentação do elenco, o jogador será reavaliado pelos profissionais do clube para ver se tem condições de ir a campo.

Já classificado para a fase mata-mata do Campeonato Paulista com quatro rodadas de antecedência, o Corinthians tem o clássico no fim de semana como partida de estreia do técnico Vítor Pereira. O português, inclusive, será apresentado à imprensa no CT Joaquim Grava na próxima sexta.

Corinthians