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

Ambulante que tocou piano de shopping se emociona ao ganhar teclado na BA

Ambulante que tocou em piano de shopping faz vaquinha para comprar teclado - Instagram/reprodução
Ambulante que tocou em piano de shopping faz vaquinha para comprar teclado Imagem: Instagram/reprodução

Do UOL, em São Paulo

12/08/2021 20h51Atualizada em 13/08/2021 09h29

O vendedor de salgados Adilson Rafael da Cruz, de 48 anos, conhecido como "Dirceu dos Teclados", encantou a todos depois que saiu do anonimato ao ser gravado tocando Frank Sinatra em um piano do Shopping Barra de Salvador. Músico, ele ou por dificuldades desde que sofreu um AVC (Acidente Vascular Cerebral), e voltou a se apresentar após a repercussão do vídeo, que emocionou milhares de pessoas. Hoje, foi a vez dele se emocionar, ao receber uma doação de um teclado, que era seu maior desejo.

O homem se emocionou, diante de toda a sua família, quando teve mais uma apresentação no centro de compras interrompida e foi surpreendido com o presente, da istração do local. Segundo a filha Aline Franco, ninguém foi avisado da ação. "Foi uma surpresa até mesmo para a família", contou.

A família chegou a fazer uma vaquinha on-line para justamente conseguir comprar um teclado e permitir que o músico se mantivesse por pelo menos três meses, até retomar à carreira musical interrompida há anos por suas condições de saúde, já que as vendas como ambulante normalmente não am de R$ 20 por dia.

Morando em uma casa bem simples com a mulher, com a filha e o neto, a única renda consolidada da família vem da filha, que trabalha como vendedora e recebe um salário mínimo. Ele chegou a ter um contrato temporário para a semana de dias dos pais e para a apresentação de hoje, no shopping em que o vídeo foi gravado, mas ainda não há cronograma para novas apresentações. Por isso, a filha disse que a campanha da vaquinha será mantida.

Devido ao AVC, Adilson teve o lado direito do corpo paralisado e hoje tem problemas de saúde como diabetes, colesterol e pressão alta. Mas isso não o impede de tocar piano.

A vaquinha da família é feita através do apoio da plataforma da página Razões Para Acreditar, que foi uma das primeiras a compartilhar o vídeo de Adilson tocando piano no shopping. Até agora, foi atingido 50% da meta e você pode fazer uma doação de qualquer valor clicando aqui.