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

Mesmo autorizada, Várzea Paulista (SP) suspende aulas presenciais

Mesmo com todo o estado de SP na fase vermelha do plano de reabertura, escolas estão autorizadas a funcionar presencialmente - Reprodução/Prefeitura de Várzea Paulista
Mesmo com todo o estado de SP na fase vermelha do plano de reabertura, escolas estão autorizadas a funcionar presencialmente Imagem: Reprodução/Prefeitura de Várzea Paulista

Do UOL, em São Paulo

05/03/2021 11h40Atualizada em 05/03/2021 14h00

Mesmo autorizada pelo governo de São Paulo para seguir com as aulas presenciais na fase vermelha, a Prefeitura de Várzea Paulista (SP) decidiu suspender as atividades nas escolas na rede municipal de ensino até o dia 19 de março.

"A medida considera a necessidade de zelar e cuidar da vida dos membros da comunidade escolar e, paralelamente, manter ativo e operante o Sistema Municipal de Educação de Várzea Paulista", disse, em nota, o Executivo local.

As aulas presenciais na rede estadual de ensino seguem normalmente em Várzea Paulista, localizada na zona urbana de Jundiaí (SP). Sobre as aulas na rede privada, a prefeitura recomendou que as escolas também paralisem as atividades presenciais até o dia 19 de março.

Mesmo com a paralisação presencial, as aulas prosseguem por meios remotos. Ainda na nota, a Prefeitura de Várzea Paulista orientou que responsáveis e estudantes acompanhem as atividades à distância por meio da Plataforma Educacional, no Portal do Cidadão.

Como ficam as escolas na fase vermelha

As escolas da rede estadual seguirão abertas em toda SP para estudantes que precisarem de alimentação e estiveram com dificuldade de o à tecnologia, "severa defasagem" de aprendizado, com a saúde mental em risco e com os pais trabalhando em serviços essenciais.

As unidades de ensino municipais, como as de Várzea Paulista, e particulares foram autorizadas a seguirem abertas, desde que o limite de ocupação de 35% seja respeitado. A decisão final, pela abertura ou não, entretanto, ainda cabe aos municípios e aos gestores particulares.