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

Mercado da bola: R. Gaúcho é favorito no Corinthians; Real prepara saídas

Renato Gaúcho na Neo Química Arena - Reprodução / Instagram
Renato Gaúcho na Neo Química Arena Imagem: Reprodução / Instagram

Do UOL, em São Paulo

17/05/2021 21h21

A busca do Corinthians por um novo técnico foi o principal assunto do mercado da bola nesta segunda-feira. Renato Gaúcho, ex-Grêmio, aparece como favorito para assumir o lugar de Vagner Mancini, demitido após a eliminação no dérbi do último fim de semana.

Mas nem tudo é simples. Isso porque a pedida salarial parece ser o principal obstáculo para um acordo entre as partes. Neste cenário, outro nome ganha força no Parque São Jorge: trata-se do ex-lateral Sylvinho.

Real prepara dispensas

Outro assunto que movimentou o dia de hoje foi a possível lista de dispensas do Real Madrid. Segundo o jornal As, a diretoria quer mudanças após os resultados ruins na temporada e já prepara a saída de medalhões do elenco. Veja a lista de quem pode sair.

Talles Magno rumo aos EUA

O Vasco tem encaminhada a venda do atacante Talles Magno, de 18 anos, para o New York City (EUA), clube que faz parte do chamado "Grupo City" e disputa a Major League Soccer (MLS). Os valores ainda não foram divulgados, mas podem ultraar a casa dos US$ 10 milhões (cerca de R$ 52 milhões) com o cumprimento de metas. A informação inicial do interesse foi dada pelo site "Território MLS" e confirmada pelo UOL Esporte.

Henrique na mira do Lyon

Outro que pode estar de saída do Vasco é o lateral-esquerdo Henrique. Juninho Pernambucano, diretor-executivo de futebol do Lyon, itiu interesse no jogador de 27 anos. A tendência é a de que o acerto ocorra em breve.

Time de Mano contrata Talista

O Al-Nassr, time da Arábia Saudita, anunciou nesta segunda-feira a contratação de Anderson Talisca. O brasileiro chega ao clube a custo zero, após deixar o Guangzhou Evergrande, da China. O meia será treinado pelo seu compatriota Mano Menezes, que se juntou ao clube árabe em abril deste ano.

Walter assina com 3º clube na temporada

Menos de uma semana depois de rescindir com o São Caetano, Walter assinou com o Botafogo-SP para a Série C do Campeonato Brasileiro 2021. Aos 31 anos, ele ainda deve ar por exames médicos nos próximos dias. Este será o terceiro clube de Walter na temporada.