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

Governo de SP diz que abriu 85% de escolas; 7 fecham por casos de covid-19

Professora leciona aula de português na escola estadual Brigadeiro Gavião Peixoto - Luís Adorno
Professora leciona aula de português na escola estadual Brigadeiro Gavião Peixoto Imagem: Luís Adorno

Júlia Marques e Renata Cafardo

09/02/2021 07h50

Sete escolas estaduais de São Paulo foram fechadas por casos de infecção por coronavírus antes mesmo de retomarem aulas presenciais. No total, 85% das 5.300 escolas da rede foram abertas. A retomada ocorre em meio à segunda onda da pandemia de covid-19 e foi marcada por euforia entre alunos e desconfiança de pais e professores.

Na semana ada, as escolas começaram a receber alunos para distribuição de merenda e planejamento dos professores.

Um dos colégios fechados é a Escola Estadual Ermelino Matarazzo, na zona leste da capital, que teve duas infecções confirmadas e outras sete pessoas com sintomas.

"Que a gente possa afirmar, surto até agora não houve, mas estamos investigando", disse ontem o secretário da Educação, Rossieli Soares, na Escola Estadual Raul Antônio Fragoso, em Pirituba, zona norte de São Paulo. Rossieli disse não descartar a necessidade de eventualmente fechar turmas ou outras unidades durante o processo de reabertura.

Escolas da rede estadual só receberão 35% dos estudantes nas primeiras semanas, mesmo em cidades na fase amarela do plano estadual de flexibilização da quarentena, como a capital.

Já as particulares nessas regiões podem receber até 70% dos alunos, se os prefeitos permitirem. O secretário disse que foi mantido o porcentual por uma questão de planejamento.

A Apeoesp, sindicatos dos professores da rede estadual, também apontou casos de covid nas escolas. Segundo o sindicato, relatos em 96 unidades indicam 206 infecções.

Os docentes entraram em greve contra a volta às aulas e o governo pretende endurecer as medidas contra o sindicato para garantir a reabertura. Os salários de professores que não retornarem à escola serão descontados a partir desta segunda (8), segundo o secretário.

O governo ainda estuda acionar a Justiça contra a greve dos docentes. "Não tivemos nenhuma escola parada por causa de greve." Segundo a pasta, 5% dos professores faltaram.

Já a Apeoesp fala em adesão de 15% dos professores à greve. Ainda segundo o sindicato, foi "baixíssima" a presença de estudantes ontem. "Em torno de 5%." O governo não deu balanço.

Larissa, de 10 anos, comemorou a volta às aulas após 11 meses, mesmo sem ter reencontrado as amigas, que ficaram em turma diferente do rodízio. "Foi legal. Até consegui terminar de escrever um texto."

Já os pais veem com desconfiança e cobram volta facultativa. "Vim aqui saber se o retorno é obrigatório, porque não quero levar minha filha", disse Edineide da Franca, de 36 anos, na secretaria de outra escola na zona norte.

Hipertensa, ela tem medo de a filha levar a covid para dentro de casa. "As escolas não têm funcionários, faltam muitas coisas."

Ela também relatou dificuldades de o ao Centro de Mídias, plataforma usada para aulas remotas, problema que não tinha no ano ado.

As informações são do jornal O Estado de S. Paulo.