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

Fisiculturista 'vovó fitness' diz ter sofrido 'gostosofobia' em academia

Colaboração para Splash, em São Paulo

04/07/2022 10h42

Andréa Sunshine, 53 anos, brasileira radicada em Londres, na Inglaterra, conhecida nas redes sociais como 'vovó fitness', relatou ter sofrido 'gostosofobia' ao ser impedida de filmar seu treino por um funcionário de uma academia.

Ao Extra, ela disse que a situação aconteceu durante um treino em uma academia dentro de uma unidade em Búzios, na Região dos Lagos, no Rio de Janeiro.

"No dia 17 de junho, tive um treino maravilhoso e fiz as minhas imagens para as postagens no Instagram. Mas, para a minha surpresa, no sábado, fui abordada durante a metade das minhas atividades por um funcionário que se dizia gerente", contou.

Conforme a influenciadora, o colaborador a constrangeu a afirmar que ela não poderia filmar os exercícios o que chamou atenção de outras pessoas no local.

"Por conta do meu trabalho internacional reconhecido como influencer fitness, estava gravando imagens de mais um dia de treino. Não quero discutir política interna, apesar de achar a deles obsoleta, pois estamos na era digital e todos os simpatizantes e influencers dessa área fazem postagens de suas rotinas em academias espalhadas pelo mundo todo. Mas, sim, o constrangimento preconceituoso de 'gostosofobia'. Talvez, se fosse um homem, a conduta teria sido mais respeitosa e gentil. Me senti diminuída e inferiorizada com todos os olhos virados para mim. A academia estava lotada! Fiquei gelada, sentindo palpitações já que estava com o meu pré-treino ativo e com a adrenalina altíssima", relembrou.

Ela contou que explicou ao funcionário que a situação iria prejudicá-la em relação ao trabalho, mas o rapaz não se importou.

"Disse a ele quem eu era, porém, ficou pior. Ele pediu para ver meu Instagram, eu prontamente mostrei, e ele reagiu com um ar de desdém e soltou um: 'Ah, você é famosa? Mas, me desculpe, não pode gravar'", disse a influenciadora

Andréa falou que após a situação denunciou a academia nos órgãos de defesa do consumidor. "Por que me constranger ainda mais e tornar mais longo o processo? Por que não me chamou em um canto? Ou não me deu um toque discretamente na saída? Senti um enorme desconforto e constrangimento", finalizou.

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

OnlyFans é um site popular na indústria do entretenimento adulto. Nele, as pessoas podem fotos e vídeos de outros, seja famoso ou anonimo. Não há censura para imagens nuas. Ele foi lançado em 2016 no Reino Unido. No Brasil, a página conta com celebridades como Anitta, Raíssa Barbosa, Silva e Rita Cadillac.