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

Com caminhadas, britânico de 99 anos arrecada R$ 10,5 mi a sistema de saúde

Tom Moore se propôs a dar 100 voltas no jardim de casa antes de completar 100 anos; em troca, lançou campanha que pretendia arrecadar apenas mil libras - JustGiving.com
Tom Moore se propôs a dar 100 voltas no jardim de casa antes de completar 100 anos; em troca, lançou campanha que pretendia arrecadar apenas mil libras Imagem: JustGiving.com

Do UOL, em São Paulo

15/04/2020 20h48

Tom Moore, um veterano da Segunda Guerra Mundial, completará 100 anos no dia 30 de abril. Por isso, o britânico se desafiou a completar 100 voltas no jardim de casa, no condado de Bedfordshire, até lá.

Mas em tempos de pandemia do novo coronavírus, Moore resolveu incrementar a proposta. Na última semana, em troca das voltas, ele e a família criaram uma campanha virtual de arrecadação para levantar uma doação — inicialmente de mil libras, ou cerca de R$ 6,5 mil — ao sistema nacional de saúde do Reino Unido (NHS).

Hoje, a meta já foi batida. E mais do isso: até esta quarta-feira, a campanha já arrecadou mais de 10,5 milhões de libras (R$ 68,8 milhões) para os profissionais de saúde.

"De repente, tínhamos 50 mil libras. Depois, 100 mil. Agora, os números são simplesmente inacreditáveis", afirmou Tom Moore, segundo o jornal Daily Mail. "Eu viro as costas por alguns minutos e dispara de novo. É um dinheiro impressionante. Uma quantidade que a gente não consegue visualizar."

A campanha rapidamente ganhou destaque na imprensa britânica. Diversas personalidades fizeram doações - da ativista Carrie Symonds ao apresentador Piers Morgan, ando pelo cantor australiano Jason Donovan.

Agora, às vésperas do 100º aniversário, "Capitão Tom" aproveita para curtir suas caminhadas cada vez mais incentivado. "Estou fazendo algo que eu gosto de fazer, e o resultado é melhor ainda, não?"

Coronavírus liga alerta pelo mundo