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

Marcel Rizzo

Sem palmeirense ou santista? Fifa só deve liberar torcida local no Mundial

Estádio Cidade da Educação, em Doha, será sede da final do Mundial-2020 - Reprodução/Confederação Asiática de Futebol (AFC)
Estádio Cidade da Educação, em Doha, será sede da final do Mundial-2020 Imagem: Reprodução/Confederação Asiática de Futebol (AFC)

Colunista do UOL

30/12/2020 11h00

A Fifa ainda estuda se abrirá para o público acompanhar in loco os jogos do Mundial de Clubes-2020, que será disputado de 1º a 11 de fevereiro de 2021 no Qatar — torneio foi adiado de dezembro por causa da pandemia.

Mas se você torce para Palmeiras ou Santos, clubes brasileiros que podem estar lá, não se anime: a ideia, apurou o blog, é que apenas residentes do Qatar possam estar nas arenas, em número reduzido. Não deve haver venda de ingressos para torcedores de outros países.

A Fifa ainda não se pronunciou sobre entradas e público no Mundial. Na edição de 2019, que teve o Flamengo como vice-campeão, a Fifa abriu a venda online em 23 de outubro, 48 dias antes da abertura da competição.

A decisão entre Liverpool e Flamengo, no Khalifa Internacional, teve mais de 45 mil espectadores, muitos deles brasileiros que viajaram para acompanhar a competição - os ingleses venceram por 1 a 0.

A cúpula da Fifa entende ser inviável neste momento que torcedores viajem grandes distâncias para ver um torneio de futebol pelo risco de contaminação por Covid-19 — o Mundial será o primeiro campeonato organizado pela entidade após o início da pandemia. Mas a presença de público local, com limitação de assentos vendidos, é estudado. Há também a vontade do governo qatariano de não deixar os estádios completamente vazios e testes de protocolos já foram feitos.

A final da Copa do Amir, em 18 de dezembro, teve na inauguração do Ahmad Bin Ali Stadium cerca de 20 mil torcedores presentes, 50% da capacidade.

Na final da Liga dos Campeões da Ásia, dia 19, foi liberada 30% da capacidade, pouco mais de 10 mil torcedores no Al-Janoub Stadium, que não receberá jogos do Mundial de Clubes mas estará na Copa do Mundo de 2022.

Vários protocolos foram seguidos, como venda somente local de ingressos (como imagina a Fifa para o Mundial), exigência de testes negativos PCR para Covid-19, venda de apenas um bilhete por pessoa, uso de máscaras e distanciamento de ao menos 2 metros entre cada assento ocupado.

A Fifa avalia ser complicado vender ingressos fora do Qatar porque o o ao país está limitado e com regras sanitárias rígidas. Turistas precisam entrar com exame PCR negativo feito no máximo 96 horas antes do embarque, mas também cumprir uma quarentena de sete dias para realizar novo exame que comprove a não contaminação por Covid-19. Só aí essa pessoa recebe e livre para circular pelo país.

O Ulsan Hyundai (Coreia do Sul) bateu o Persepolis (Irã) por 2 a 1 na final asiática e se garantiu no Mundial junto com Bayern de Munique (Alemanha), Al Ahly (Egito), Auckland City (Nova Zelândia), Tigres (México) e Al Duhail (Qatar, representante do país-sede). Só falta definir o indicado da América do Sul, que sai em 30 de janeiro após a final da Libertadores, no Maracanã.

Palmeiras e Santos enfrentam, respectivamente, os argentinos River Plate e Boca Juniors nas semifinais da Libertadores, entre 5 e 13 janeiro.