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

'Vovó fitness' é fisiculturista, treina até 8h por dia e conquista jovens

De Splash, em São Paulo

19/04/2022 12h02

Aos 53 anos, Andréa Sunshine, brasileira radicada em Londres, na Inglaterra, tem chamado a atenção nas redes sociais pela sua forma física.

Avó de duas crianças, Henrico e Raica, ela acumula mais de 100 mil seguidores no Instagram, onde compartilha parte de sua rotina de treinos e conquista fãs mais jovens. Conheça mais da dona da fama repentina nas redes sociais:

Fisiculturista

Para manter o físico musculoso, ela chega a fazer treinos de até oito horas por dia — o mínimo que a na academia diariamente são três horas.

150 ovos por mês

Já para seguir uma dieta descrita como "saudável" e de 3.500 calorias diárias, ela não usa sal nem óleo na cozinha e consome cerca de 150 ovos e 10 kg de batata-doce por mês.

Divórcio impulsionou vida fitness

Divorciada de seu último marido "há muito tempo" — como ela mesma relatou em entrevista ao The Sun —, Andréa contou que adotou o estilo de vida "fitness" após terminar o relacionamento.

"O estilo de vida fitness veio para minha vida logo após o meu divórcio, como compensação, no momento que me senti miserável e triste. Depois de muitos anos sozinha tentando descobrir mais sobre quem eu era e para que estou aqui, consegui", disse.

Estou pronta para abrir meu coração novamente, para alguém interessante e apaixonado. completou Andréa

"Novinhos" têm chance?

Também ao tabloide britânico, Andréa relatou que gosta de chamar a atenção de homens mais jovens que ela. Os "novinhos", porém, não conseguem despertar interesse na fisiculturista e influenciadora digital.

"Não posso ser hipócrita, chamar a atenção de jovens me excita, me deixa orgulhosa da minha forma e funciona como combustível para o meu ego, me faz sentir bem e empoderada. Mas desde jovem eu nunca fui realmente atraída por garotos, eu me interessei mais por caras maduros", contou.

Perfil no OnlyFans

Assim como outras influenciadoras, Andréa Sunshine também está no OnlyFans. Por US$ 10 (aproximadamente R$ 46) ao mês, é possível ar o conteúdo exclusivo da fisiculturista de 53 anos.

Veja os famosos 'só para maiores' que têm conta no OnlyFans