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

Pandemia e crise das transmissões atrapalham laço entre seleção e torcida

Everton Cebolinha pode não ser visto em ação pela seleção em sete jogos das Eliminatórias à Copa do Qatar - Lucas Figueiredo/CBF
Everton Cebolinha pode não ser visto em ação pela seleção em sete jogos das Eliminatórias à Copa do Qatar Imagem: Lucas Figueiredo/CBF

Gabriel Carneiro

Do UOL, em São Paulo

09/10/2020 04h00

A seleção brasileira entra em campo hoje (9), às 21h30, contra a Bolívia, pela primeira rodada das Eliminatórias Sul-Americanas à Copa do Qatar. Faz quase um ano que isso não acontece — para ser mais exato, 325 dias desde novembro do ano ado. Apesar desse longo tempo de afastamento, o clima que antecede a partida não é de ansiedade, festa ou expectativa. É de frieza.

Ano ado, após o título da Copa América que deu sinais de reaproximação entre torcida e seleção, foram realizados seis amistosos em países com pouca expressão no futebol, estádios vazios e desempenho fraco. Esse distanciamento poderia ser minimizado com o início das Eliminatórias no país, mas dois fatores atrapalham: a pandemia da Covid-19 que impede torcida nos estádios e a polêmica dos direitos de transmissão.

A ideia da Confederação Brasileira de Futebol era abrir as Eliminatórias na Arena Pernambuco. O jogo contra a Bolívia seria em 27 de março, num palco de histórico acolhimento à seleção, com treino aberto e ingressos a preços mais populares. Não deu certo. A partida foi adiada para outubro por causa da pandemia e a programação refeita, com a mudança para a Neo Química Arena sem público e com o a muitos envolvidos.

Assim, a reaproximação forçada da seleção com o país em um jogo com grande valor será com estádio vazio e sem o termômetro da torcida.

Neo Química Arena - Ettore Chiereguini/AGIF - Ettore Chiereguini/AGIF
Seleção soma três jogos e três vitórias na Neo Química Arena, estádio do Corinthians
Imagem: Ettore Chiereguini/AGIF

Quase 40% dos jogos sem TV?

Na sequência, mais um problema está no radar: os direitos de transmissão dos jogos das Eliminatórias Sul-Americanas. Sete jogos da seleção brasileira como visitante não têm qualquer garantia de exibição no país até o momento.

A Globo comprou o direito de exibir todos os nove jogos do Brasil como mandante em TV aberta, fechada e internet, além dos jogos da Argentina (inclusive contra o Brasil).

Luis Roberto - Reprodução/Instagram - Reprodução/Instagram
Luis Roberto narrará Brasil x Bolívia na Globo
Imagem: Reprodução/Instagram

Já os outros jogos do Brasil fora de casa estão indefinidos: como mostrou o UOL Esporte ontem (8), a Turner transmitirá Peru x Brasil, que será em Lima, na terça-feira (13), às 21h, em sua plataforma de streaming (EI Plus - disponível para s do UOL Esporte Clube) e possivelmente na TV fechada (TNT). Ainda é possível que a Globo adquira os direitos para TV aberta.

O restante dos jogos está disponível, sem dono, no mercado. O SBT já mostrou interesse, mas por enquanto não há avanços significativos. Uma plataforma de streaming chamada Guigo TV chegou a fechar acordo de transmissão, mas federações afirmaram que uma grande rede de TV pediu exclusividade na negociação, que travou. Vale lembrar que as federações nacionais são donas dos direitos de transmissão.

Enquanto não há acerto de transmissão, a seleção brasileira entra em campo hoje para despertar no torcedor pelo menos o desejo de vê-la.