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

Vídeo mostra momento em que piscina desaba em garagem de condomínio de luxo

Vinícius Rangel

Colaboração para o UOL, em Vitória

23/04/2021 22h16Atualizada em 24/04/2021 07h28

Câmeras de segurança do residencial Parador, em Vila Velha (ES) flagraram o momento exato em que a piscina do condomínio de luxo desabou, com a água e os escombros invadindo a garagem.

Os registros foram divulgados no final da tarde de hoje, depois de uma vistoria no local. Neles, é possível ver que às 21h56 de ontem, a piscina, de estilo raia, desabou completamente. A cena dura pouco mais de um segundo.

Uma outra câmera capturou a parte debaixo da torre, onde está a garagem.

Além de atingir o subsolo, danificando carros, os escombros e a água chegaram até às ruas do entorno do condomínio Parador, em Itaparica.

Apesar do susto, no momento do incidente ninguém ava pelo local e se feriu.

Os moradores ficaram assustados com o barulho alto e chegaram a dizer que o prédio tremeu com o impacto do desabamento.

90 apartamentos tiveram que ser esvaziados até que fossem feitas vistorias no prédio. Uma moradora de um condomínio vizinho chegou a relatar o desespero das pessoas com o incidente.

"Eu tomei um susto, achei que era até o meu prédio, mas era ao lado. Ainda bem que não machucou ninguém. Fiquei muito triste de ver os moradores saindo às pressas. Muitos com criança pequena dormindo no colo", relatou Bel Guimarães.

Durante todo o dia, equipes da Defesa Civil e também do Crea-ES (Conselho Regional de Engenharia e Agronomia do Espírito Santo), estiveram no local. A vistoria inicial coordenada pelo gerente de fiscalização, Leonardo Leal, identificou que o aço que segurava o fundo da piscina não estava preso.

No início da noite, a empresa Argo, responsável pelas duas torres do residencial, informou que a Defesa Civil emitiu parecer de que a estrutura da edificação não foi abalada pelo incidente, corroborando com o laudo emitido pelo engenheiro calculista, permitindo o retorno dos moradores aos seus apartamentos.

"O retorno acontecerá até terça-feira (27), a fim de resguardar a segurança dos moradores, evitando possíveis aglomerações e alto fluxo de prestadores de serviço nesse momento de pandemia. Nesse período a Argo vai continuar a arcar com as despesas de hotel e afins", disse a empresa ao UOL.