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

Marcela Porto sobre época como mulher fruta: 'Preconceito por ser trans'

Caminhoneira Marcela Porto - Allan Bertozzi
Caminhoneira Marcela Porto Imagem: Allan Bertozzi

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

16/09/2022 11h49

As mulheres fruta voltaram ao holofote por causa da participação de Moranguinho em "A Fazenda 14". Marcela Porto, que na época se apresentava como Mulher Abacaxi, recorda o período. Ela conta ser vítima de transfobia de alguns funkeiros.

"Na época tinha muito preconceito. Eu fazia várias capas de CDs e DVDs, mas não falavam quem eu era. Só aparecia a minha foto e o nome da equipe, para não associar o nome da equipe a uma mulher trans. Essa é a verdade", recorda.

Ao contrário da maioria das outras mulheres frutas, Marcela não era dançarina. A caminhoneira cantava, chegou a lançar várias músicas e gravou um DVD da Furacão 2000. Mas em suas apresentações, a empresária tinha que lidar com o preconceito.

"Muitos DJS e MCs davam gargalhadas quando eu entrava. Sofri muito preconceito por ser trans no meio artístico, menos do público que sempre com carinho comigo", destaca a cantora.

Marcela acredita que por ser uma mulher trans não tinha tanto destaque como outras mulheres frutas. Ela celebra que, atualmente, a diversidade seja abraçada."Até a imprensa tinha muito preconceito também na época, muitos não me chamavam para ir aos programas de TV por eu ser transexual, mas com o tempo fui ganhando meu espaço na mídia. A vida é um ciclo", afirma.

Mas ela não culpa os produtores dos programas de TV. Ao contrário, Marcela pontuou que a sociedade não estava preparada para ver na época uma trans sensual. "Com certeza que não. Transex não podia ser gostosa, só engraçada para ser bem aceita", ponderou.

Da época, apenas uma mulher fruta se transformou em uma grande amiga da caminhoneira: a Mulher Maçã."Gracy Kelly é minha amiga até hoje. Ontem mesmo estávamos fofocando no WhatsApp. Eu na Europa e ela nos Estados Unidos. Uma irmã no que ganhei na salada de frutas", brinca.