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

Tiroteio na Califórnia deixa 4 mortos, incluindo uma criança

 Tiroteiro deixa mortos na Califórnia - Reprodução/KTLA
Tiroteiro deixa mortos na Califórnia Imagem: Reprodução/KTLA

Do UOL, em São Paulo*

01/04/2021 00h00Atualizada em 01/04/2021 06h54

Quatro pessoas, entre elas uma criança, foram mortas hoje após um homem disparar tiros contra um prédio comercial na cidade de Orange, ao sul de Los Angeles.

Os policiais foram chamados para uma ocorrência em um complexo comercial por volta das 17h30 (21h30, no horário de Brasília). Os agentes chegaram enquanto tiros ainda estavam sendo disparados e encontraram "várias vítimas no local, incluindo mortos", disse o Departamento de Polícia de Orange.

O agressor, cujas motivações ainda são desconhecidas, também foi baleado após intervenção policial e foi levado para um hospital. Sua condição é crítica, segundo a policial Jennifer Amat. Os policiais estão tentando esclarecer se ele foi ferido na troca de tiros com a polícia.

Uma quinta vítima, uma mulher ferida, também foi hospitalizada, e seu estado é muito grave. A polícia não divulgou detalhes sobre as vítimas.

O Departamento de Polícia local informou por volta das 19h (23h, no horário de Brasília) que a situação foi estabilizada e que não havia mais ameaças para a população.

"É horrível, devastador", disse o governador da Califórnia, Gavin Newsom.

Onda de ataques

Na semana ada, ocorreu um tiroteio em um supermercado na cidade de Boulder, no Colorado (EUA), a polícia local confirmou a morte de ao menos dez pessoas no ataque da última segunda-feira (22).

A confirmação foi dada em entrevista concedida pelo chefe do departamento, Maris Herold. De acordo com o policial, um suspeito foi preso portanto uma arma parecida com um fuzil AR-15. A motivação do ataque não foi divulgada.

O ataque ocorreu no supermercado King Soopers da cidade, que fica 30 km a noroeste da capital do estado, Denver.

Na noite de 16 de março, um homem de 21 anos identificado como Robert Aaron Long, de Woodstock, na Geórgia, sudeste dos Estados Unidos, é suspeito de matar oito pessoas - seis delas asiáticas - em uma série de tiroteios em três spas na área metropolitana de Atlanta.

O capitão Jay Baker, da polícia do condado de Cherokee, informou ao jornal Atlanta Journal-Constitution que as vítimas eram duas asiáticas e uma mulher e um homem brancos. Um latino foi ferido.

O departamento de polícia de Atlanta confirmou que quatro mulheres de origem asiática foram encontradas mortas em outros dois spas na zona nordeste de Atlanta. O FBI está colaborando com a investigação.

*Com informações da AFP