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

Chuvas destroem pontes e deixam mais famílias desabrigadas em MG

07.01.22 - BR-381 interditada na altura de Sabará (MG) - Reprodução/Twitter/@PRF_MG
07.01.22 - BR-381 interditada na altura de Sabará (MG) Imagem: Reprodução/Twitter/@PRF_MG

Do UOL, em São Paulo

08/01/2022 10h33Atualizada em 08/01/2022 12h53

Fortes chuvas seguem causando danos no estado de Minas Gerais. De ontem (7) para hoje (8), 32 famílias tiveram que deixar suas casas por causa de enchentes. Pontes foram destruídas e a Câmara Municipal de Cajuri, a 240 km de Belo Horizonte, foi atingida por um deslizamento.

De acordo com boletim da Defesa Civil estadual, o período chuvoso, registrado desde outubro, já deixou seis mortos e fez com que pelo menos 16 mil pessoas saíssem de casa. Mais de 120 municípios estão em estado de emergência.

Ao todo, 13.439 pessoas ficaram desalojadas e 3.224, desabrigadas. Nos dois casos, são pessoas que tiveram de deixar suas casas, mas são considerados desabrigados os cidadãos que necessitam de assistência do governo para moradia temporária.

Nas últimas 24 horas, as principais cidades afetadas foram Cajuri e Miradouro, no sudeste do estado, e Três Corações, ao sul.

  • Em Três Corações, com a cheia do Rio Verde, 23 famílias ficaram desabrigadas e a Defesa Civil desalojou outras 32 famílias, com 85 pessoas, por morarem em área de risco.
  • Em Miradouro, três pontes da área rural foram destruídas e algumas estradas de o foram interditadas por causa de deslizamentos, mas a cidade não está ilhada.
  • Já em Cajuri um deslizamento danificou a Câmara Municipal da cidade durante a madrugada. O local foi interditado e nenhuma pessoa ficou ferida.

Ontem, as enchentes já haviam alagado casas e destruído estradas em Pouso Alto e São Lourenço.

Dique de barragem transbordou na Grande BH

O dique de uma barragem transbordou e interditou a rodovia BR-040 nas imediações de Nova Lima (MG), região metropolitana de Belo Horizonte, na manhã de hoje (8). Segundo o Corpo de Bombeiros, uma estrutura de contenção da Barragem da Mina Pau Branco não ou o grande volume de chuvas.

O incidente ocorreu pouco antes das 11h. A rodovia federal foi inundada e o trânsito, interrompido. Não há registro de vítimas, ainda de acordo com os bombeiros.