;(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();
})();
Incêndio no Juquery é extinto e vídeos de ação revelam perigo e destruição
Incêndio no Parque do Juquery devastou mais de 80% dos 1.927 hectares de área Imagem: Reprodução/Facebook/Prefeitura Municipal de Franco da Rocha
Ed Wanderley
Do UOL, em São Paulo
24/08/2021 20h32
Após destruir mais de 80% da cobertura vegetal do Parque Estadual Juquery, o incêndio que durou três dias na região de Franco da Rocha (SP) foi extinto, informa o Corpo de Bombeiros. Segundo a corporação, ainda restam braseiros, mas que serão feitas rondas noturnas para evitar que novos focos de chamas se iniciem, como ocorreu ontem, quando o fogo foi considerado controlado e o parque estava ainda 60% comprometido, mas diversos focos voltaram a queimar.
Srs. estamos felizes em informar que o incêndio em cobertura vegetal no Pq do Juquery, está totalmente extinto, com alguns braseiros isolados, rondas noturnas serão feitas para evitar reignição. Corpo de Bombeiros, Brigadista do Pq, Policiais ambientais participaram da operação.
-- Corpo de Bombeiros PMESP (@BombeirosPMESP) August 24, 2021
Imagens assustadoras
Enquanto ajudavam a apagar as chamas dos incêndios no Parque do Juquery, que fica em Franco da Rocha, na Grande São Paulo, bombeiros militares se viram cercados pelo fogo. Tudo foi transmitido pela página do Facebook do Corpo de Bombeiros de São Paulo e posteriormente compartilhado nas redes sociais do Major Palumbo, que estava no local. Enquanto ele gravava o helicóptero jogando água sobre o fogo, avisa: "Atenção aí que vai vir uma fumaceira". Em seguida, as labaredas parecem ficar maiores e ele alerta aos outros profissionais que o fogo estava chegando pela direita.
No vídeo, dá para ver muita fumaça. É possível ver quando a câmera é virada para as chamas altas e o major diz que eles estavam ficando "literalmente cercados pelo fogo". As imagens assustam, mas os bombeiros militares, brigadistas e voluntários do parque conseguem escapar enquanto eles mesmos tentavam controlar as chamas. Ao UOL, a assessoria do Corpo de Bombeiros disse que não houve feridos no incêndio.
"Olha o que o criminoso do baloeiro conseguiu fazer mais uma vez com uma riqueza do nosso município. Mais de cinco horas aqui, exausto. Muitos colegas não aguentaram, sentiram desmaio, desmaiaram. Foram reanimados e estão lá de novo", diz chorando o guarda civil municipal Adelson Oliveira, em um vídeo publicado em seu perfil do Facebook.
Nas imagens, ele mostra as chamas ainda muito altas e volta a chorar. "O que mais dói é [que] daqui a gente ouve o grito dos 'bichinhos' lá embaixo pedindo socorro e a gente não consegue ajudar. A gente não pode entrar lá para salvar o bicho, senão a gente morre queimado".
Clamando para que as pessoas não soltem balão, ele fala sobre os casos de tatus encontrados e cobras agonizando no local, além de agradecer o apoio dos moradores que estavam levando mantimentos.
A atividade de baloeiros pode ser denunciada no estado de São Paulo por meio dos telefones 190 (Polícia Militar) e 181 (Disque-Denúncia).
Em caso de emergências envolvendo balões, os números adequados são 199, da Defesa Civil, ou 193, do Corpo de Bombeiros.
Além disso, o governo do estado disponibiliza o aplicativo Denúncia Ambiente, canal online para comunicar crimes ambientais, possibilitando o envio de fotos e descrição da ocorrência.
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.