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

OPINIÃO

Mauro: É estranho que só exista tamanha resistência ao público no futebol

Do UOL, em São Paulo

14/09/2021 11h43

O Flamengo conseguiu no STJD o direito de ter público no jogo diante do Grêmio pelas quartas de final da Copa do Brasil e também trabalha para ter a presença de seus torcedores no Maracanã pelo Campeonato Brasileiro, enquanto o Atlético-MG também conta com liminar favorável e os demais já se posicionaram contrários a que apenas o clube rubro-negro tenha torcida no estádio, defendendo que todos tenham quando for possível aos 20 clubes.

No UOL News Esporte, Mauro Cezar Pereira afirma que a postura do Flamengo é ruim, até devido ao fato de o jogo em Porto Alegre com o Grêmio não ter tido a presença de torcedores, mas considera que não é diferente do que fariam outros clubes se tivessem a mesma possibilidade, além de questionar por que há restrições ao futebol enquanto outros setores já contam com a presença de público sem a necessidade dos mesmos protocolos.

"Acho que a postura do Flamengo especificamente para esse jogo é inadequada, porque o jogo de ida não teve público, o Flamengo ganhou de 4 a 0, então para que isso agora? Acho que o Flamengo está brigando para ter público, acho que é um direito dele, mas deveria se esforçar pensando no Brasileiro ou em fases futuras da Copa do Brasil, desde que confirme a sua classificação. O que o Flamengo está fazendo eu acho que não é muito diferente do que outros gostariam de fazer. A grande diferença está nos governantes", diz Mauro Cezar.

"Em São Paulo, por exemplo, por que os clubes estão tão 'vamos todos juntos'? É porque o Doria, governador, não está nem um pouco interessado em liberar público no futebol, tem vários eventos em São Paulo que têm público, junta gente e tal, inclusive manifestações das quais ele participa, bailando em cima de um palco. O fato é que ele não está interessado em liberar, diz que só em novembro, coincidência ou não, em novembro tem Fórmula 1 em São Paulo", completa.

O jornalista cita como exemplo a liberação para que se tenha público nos cinemas sem a exigência de PCR ou comprovante de vacinação e questiona a resistência apenas ao futebol.

"Em qualquer situação você tem que ter uma discussão muito razoável e muito sóbria sobre a volta ou não do público, mas é incrível que em um estado como São Paulo, onde você há meses pode entrar em um cinema sem mostrar PCR, sem mostrar vacinação, sem mostrar nada, e assistir um filme em um local fechado. Os lugares, menos ingressos vendidos, ok, mas você está confiando na boa-fé das pessoas de que nenhum maluco vai entrar infectado e começar a tossir dentro do cinema", diz Mauro.

"Você entra no cinema em São Paulo sem mostrar nada, nem primeira dose, tampouco segunda dose, muito menos PCR feito em 48 horas ou coisa parecida, o futebol se propõe a ter público hoje, o Atlético-MG, o Flamengo, os outros aí, nesses termos, pessoas vacinadas, que tenham teste, então é muito estranho que você tenha tamanha resistência pelo público do futebol e mal se discuta isso, acho que porque o futebol traz realmente muita discussão, tem todo o envolvimento político aí, que envolve também outras questões, até no âmbito nacional, e o futebol fica meio escanteado nisso", conclui.