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

Notícias em primeira mão dos bastidores do futebol, informações exclusivas sobre o seu time, novidades do mercado da bola e o melhor do jornalismo esportivo em um só lugar. Só para s UOL!

Cuca trabalha para ter Diego Costa titular contra Palmeiras em setembro

Guilherme Piu

Do UOL, em Belo Horizonte

26/08/2021 04h00

O técnico Cuca pensa em usar o atacante Diego Costa como titular na partida de ida das semifinais da Copa Libertadores, contra o Palmeiras, no dia 21 de setembro, no Allianz Parque, em São Paulo. Para isso, o treinador, junto do departamento de fisiologia do Atlético-MG, planeja dar minutos para o jogador em partidas do Campeonato Brasileiro.

Segundo apurou a De Primeira, há chance de o hispano-brasileiro fazer sua estreia contra o Fortaleza, na 20ª rodada do Brasileirão, em 12 de setembro. O pensamento da comissão técnica é Diego Costa entrar no decorrer dos jogos para começar a ganhar ritmo. A intenção, pelas informações readas à reportagem, é usar o atacante em pelo menos dois compromissos antes da partida contra o Verdão.

Eleições abrem temporada de caça à vice-presidência no Palmeiras

Com o anúncio da candidatura de Leila Pereira à presidência do Palmeiras, as diversas correntes políticas que dão sustentação à sua campanha estão em busca de uma das três vice-presidências remanescentes dentre as quatro que toda candidatura precisa obrigatoriamente incluir em sua chapa. A primeira vice-presidência, conforme já anunciado por Leila, será de Paulo Buosi, também primeiro vice de Mauricio Galiotte. A coluna apurou que há pelo menos 30 postulantes a uma das três posições. Dentre as correntes que pleiteiam ter vices está a UVB (União Verde Branca), que tem como líder o ex-diretor de futebol Wlademir Pescarmona e o ex-presidente Luiz Gonzaga Belluzzo. A UVB entende merecer uma indicação por ter apoiado todas as medidas que favoreciam Leila nos últimos anos, como a extensão do mandato presidencial para três anos, por exemplo, que permitiu a Mauricio Galiotte ser presidente por tempo suficiente para Leila poder se candidatar neste ano. As eleições presidenciais no Palmeiras devem acontecer em novembro. (Por Diego Iwata Lima)

Celta pagará parcelado por empréstimo e compra de Galhardo custa R$ 9,2 milhões

Thiago Galhardo foi anunciado ontem (25) pelo Celta de Vigo. O clube espanhol pagará 500 mil euros (R$ 3 milhões na cotação atual) pelo empréstimo do jogador até o meio do ano que vem. O valor será reado ao Inter de forma parcelada. A primeira fatia até o fim deste mês, e a segunda no início de 2022. O atacante de 32 anos parte com cláusula de compra fixada em 1,5 milhão de euros (R$ 9,2 milhões na cotação atual). Se retornar, terá mais seis meses de vínculo em Porto Alegre até o encerramento da ligação ao Colorado. (Por Marinho Saldanha)

CT do São Paulo irritou a seleção da Bolívia durante a Copa América de 2019

Os problemas no CT da Barra Funda são conhecidos pela cúpula do São Paulo há, pelo menos, dois anos. Em 2019, a seleção da Bolívia se irritou com as condições do local quando o utilizou para os treinamentos da Copa América. Na ocasião, os bolivianos ficaram no vestiário 2, que era menor do que o necessário para acomodar a delegação e os equipamentos —alguns foram fotografados fora do cômodo. Desde as declarações públicas de Muricy Ramalho, coordenador de futebol, e do técnico Hernán Crespo, a diretoria do São Paulo mapeia os problemas do local antes de traçar um plano de melhorias. O entendimento da direção é que o Reffis, Núcleo de Reabilitação Esportiva Fisioterápica e Fisiológica, é o espaço que precisa de maior atenção, principalmente nos equipamentos. (Por Brunno Carvalho)