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

Fifa muda regulamento e seleção olímpica terá mais quatro convocados

André Jardine, técnico da seleção brasileira olímpica - Reprodução/Instagram/CBF
André Jardine, técnico da seleção brasileira olímpica Imagem: Reprodução/Instagram/CBF

Do UOL, no Rio de Janeiro

30/06/2021 19h14

Técnico da seleção brasileira olímpica, André Jardine poderá convocar mais quatro jogadores para levar ao torneio de futebol nos Jogos de Tóquio, em menos de um mês. Com isso, todas as delegações serão compostas por 22 jogadores.

Essa alteração no regulamento foi uma concessão feita pela Fifa após pedido das seleções participantes da competição. A data para entrega da lista final, que seria hoje (30) e teria 18 convocados, ou para sexta-feira (2). A Fifa não especificou se os quatro devem sair da pré-lista de 50 nomes enviada pelas associações. A convocação dos 18 teve nomes que não estavam nela.

Além de definir os quatro nomes adicionais, a CBF também precisa resolver o que fazer em relação ao atacante Pedro. O Flamengo não libera o jogador e inclusive ingressou no STJD para assegurar a legalidade da escalação dele nos jogos do Brasileirão. O tribunal ainda não respondeu ao pedido de liminar, ingressado junto a uma medida inominada.

Pela programação da comissão técnica, os jogadores começam a se apresentar amanhã (1) para o período de treinos no CT do Palmeiras, em São Paulo.

Os convocados de clubes brasileiros se juntam à delegação após a 10ª rodada do Brasileirão, no dia 8. O grupo completo embarca na madrugada do dia 9 para Doha, no Qatar, fará a segunda etapa da preparação, reduzindo o fuso em relação ao Japão. O meio campista Douglas Luiz, do Aston Villa, a se apresentar para a disputa da Olimpíada. Ele está com a seleção principal, na Copa América.

A seleção olímpica embarca para o Japão no dia 15 de julho. A estreia nos Jogos Olímpicos será contra a Alemanha, em 22 de julho, no estádio de Yokohama, às 8h30 (horário de Brasília).

convocados:

GOLEIROS

Santos - Athletico

Brenno - Grêmio

LATERAIS

Daniel Alves - São Paulo

Gabriel Menino - Palmeiras

Guilherme Arana - Atlético-MG

ZAGUEIROS

Gabriel Magalhães - Arsenal (ING)

Nino - Fluminense

Diego Carlos - Sevilla (ESP)

MEIAS

Douglas Luiz - Aston Villa (ING)

Bruno Guimarães - Lyon (FRA)

Gerson - Olympique de Marselha

Claudinho - Red Bull Bragantino

Matheus Henrique (Grêmio)

ATACANTES

Matheus Cunha - Hertha Berlim (ALE)

Malcom - Zenit (RUS)

Antony - Ajax (HOL)

Paulinho - Bayer Leverkusen (ALE)

Pedro - Flamengo