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

Policial é agredido com soco e homem fica ferido em abordagem em São Paulo

Homem dá soco em policial que estava em viatura durante confusão na Zona Oeste - Reprodução/TV Globo
Homem dá soco em policial que estava em viatura durante confusão na Zona Oeste Imagem: Reprodução/TV Globo

Do UOL, em São Paulo

24/09/2020 11h22

Um policial militar foi agredido com um soco e um homem ficou ferido durante uma confusão após uma abordagem da PM (Polícia Militar) na noite de ontem, no bairro de Jardim das Palmas, Zona Oeste de São Paulo. Vídeos feitos por moradores mostram uma discussão com os policiais e um homem dando um soco em um agente que estava dentro de uma viatura.

Segundo Rodrigo Vilardi, capitão da PM, a abordagem se deu por causa de um roubo na região. O homem que ficou ferido na confusão alega que foi "espancado" pelos policiais.

"Nós tínhamos um roubo que tinha sido efetuado há poucos instantes nas proximidades. E com a aproximação da viatura, esse indivíduo tentou ingressar na viela", disse Vilardi em entrevista à TV Globo.

Segundo a emissora, o homem abordado e que ficou ferido é Ataíde Oliveira dos Santos. Na chegada ao 89º DP (Distrito Policial), no Portal do Morumbi, Ataíde apresentava machucados no rosto e no corpo.

A PM alega que moradores agrediram um policial e danificaram uma viatura. "Populares, pessoas da comunidade tentaram evitar essa abordagem, danificaram a viatura, lesionaram nosso policial militar", afirmou o capitão.

Já o homem ferido disse que a abordagem foi violenta. "Me espancaram. Abordaram o quê? Me espancaram", contou para a TV Globo ao chegar à delegacia.

"Eu fui pegar um ovo na casa da minha mãe porque minha mãe mora em cima, eu moro na parte de baixo. Só que o seguinte, já estava tendo um enquadro. Eu ei normal, se tivesse que parar eu parava na hora", relatou Ataíde.

O UOL questionou a SSP (Secretaria da Segurança Pública) de São Paulo sobre o ocorrido, mas ainda não obteve resposta.