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

Esse conteúdo é antigo

Rio: contra as regras da prefeitura, cariocas se aglomeram nas praias

Praias do Rio estiveram cheias neste domingo e foram registradas aglomerações - Tomaz Silva/Agência Brasil
Praias do Rio estiveram cheias neste domingo e foram registradas aglomerações Imagem: Tomaz Silva/Agência Brasil

02/08/2020 17h59

No primeiro domingo após a autorização da volta dos banhos de mar, depois das proibições para evitar maior disseminação do novo coronavírus, as praias do Rio de Janeiro mais uma vez registraram casos de desobediência às orientações da prefeitura. Os cariocas começaram ontem a Fase 5 do Plano de Retomada das Atividades da prefeitura.

No Flamengo, em Ipanema, no Leblon e em Copacabana, na zona sul da capital, além de aglomerações havia muita gente deitada e sentada em cadeiras na areia, contrariando as determinações que proíbem esta prática.

O mesmo ocorreu na Barra da Tijuca, na zona oeste. Mas esta não era a única medida não cumprida. Muitos dos banhistas não usavam máscaras de proteção facial.

Embora sem uma presença constante, em algumas praias, o policiamento fez abordagem para pedir que os banhistas não permanecessem na areia e não particiem de jogos coletivos.

Após a saída dos policiais, no entanto, os banhistas voltavam para a areia. Os esportes coletivos sem competições, como vôlei e futevôlei, podem ser praticados, mas somente de segunda a sexta-feira.

Os vendedores ambulantes, uma característica das praias do Rio, também foram autorizados a voltar às atividades na Fase 5, desde que não vendam bebida alcoólica e ofereçam apenas comida industrializada. O mesmo vale para as barracas fixas que são montadas na areia com permissão de funcionar das 7h às 18h. Elas também não podem alugar cadeiras e nem guarda-sóis.

Outros pontos de aglomeração foram as ruas e avenidas fechadas para áreas de lazer. Nas avenidas Delfim Moreira, no Leblon, e Vieira Souto, em Ipanema, a movimentação era semelhante a antes da pandemia de covid-19. Caminhadas e o uso de bicicletas e de skates foram os preferidos. Muitos não usavam máscaras.

Ainda na Fase 5, a prefeitura estendeu até 1h o funcionamento de lanchonetes, bares, restaurantes, cafés, padarias e estabelecimentos semelhantes. Apesar disso, permanece suspenso o sistema de self-service e música ao vivo.

As lojas dos shoppings voltaram a funcionar no horário normal das 10h às 22h, mas as praças de alimentação estão restritas à metade da capacidade. A capacidade máxima de público permanece em dois terços, incluindo os estacionamentos, respeitando o distanciamento de dois metros entre as pessoas. O comércio de rua pode abrir às 9h aos sábados e também aos domingos.