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

Vídeo mostra como criança parou ônibus após motorista desmaiar nos EUA

Do UOL, em São Paulo

28/04/2023 13h16Atualizada em 30/04/2023 08h47

Um aluno da sétima série evitou que um ônibus cheio de crianças batesse após a motorista desmaiar enquanto dirigia. Um vídeo mostrou o momento no qual ele assumiu o controle do veículo.

O que aconteceu:

Ele os outros alunos deixavam a escola na tarde de quarta-feira (26) quando a motorista perdeu a consciência. O ônibus, com capacidade para 66 ageiros, estava cheio, mas nenhuma criança se feriu e o veículo não foi danificado.

Identificado como Dillon Reeves, o menino é aluno da Carter Middle School em Warren, no Michigan.

A atitude do garoto foi vista como um "ato extraordinário de coragem e maturidade", disse o superintendente da Warren Consolidated Schools, Robert D. Livernois.

A motorista do ônibus, uma mulher de 40 anos, havia acionado a central, informando que sentiu "um pouco de tontura", e que iria estacionar para esperar o socorro, explicou Livernois. No entanto, ela desmaiou antes de chegar até o ponto onde encostaria o veículo.

O menino "saltou da cadeira e correu ara frente do ônibus", descreveu o superintendente.

É possível ver o momento no qual Dillon assume o controle do volante, pisa lentamente no freio e grita para os outros alunos: "alguém ligue para o 911. Agora. Alguém deveria ligar para o 911". Ele manteve a calma enquanto as outras crianças gritavam desesperadas.

A polícia e os bombeiros chegaram em seguida e prestaram socorro à motorista, que está "estável, mas com precauções" e foi levada a um hospital para exames, conforme explicou o superintendente. Os alunos foram colocados em outros ônibus para voltar para casa.

Os pais de Reeves, Steve e Ireta Reeves, elogiaram o filho, disseram estar "extremamente orgulhosos" e o chamaram de "nosso pequeno herói". A mãe disse que quando questionou o menino sobre como ele sabia o que fazer, ele respondeu que "a observa fazendo isso todos os dias".

Dillon, ele realmente tem sido um grande cara este ano. Ele percorreu um longo caminho. Ele tem nos surpreendido com ótimas notas e com suas apresentações nas escolas com os amigos, com os colegas. E fazer algo assim, enche meu coração, faz meu coração bater mais forte
Ireta Reeves, mãe do menino Dillon Reeves