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

Juju Salimeni é chamada de 'vulgar' e diz: 'Treino para esfregar na cara'

Juju Salimeni retruca seguidor que a chamou de "vulgar" por vestir determinadas roupas - Reprodução/Instagram
Juju Salimeni retruca seguidor que a chamou de 'vulgar' por vestir determinadas roupas Imagem: Reprodução/Instagram

Colaboração para Splash, no Rio de Janeiro

11/07/2022 15h36

Juju Salimeni, de 35 anos, rebateu um seguidor em sua rede social após ele afirmar que a modelo se veste com "roupas vulgares". Ela não deixou ar batido e disse que estilo é pessoal e treina há mais de 20 anos para "esfregar" na cara de pessoas como essa.

Ao abrir uma caixinha de perguntas no Instagram, o seguidor questionou a modelo e ainda comentou que a modelo é "riquíssima, linda e deveria ser mais estilosa".

"Estilo é uma coisa muito relativa. O que é estiloso para você pode não ser para mim. Eu me acho estilosa, se você não acha, problema seu. Vulgaridade você quer dizer em relação a mostrar o corpo. Mas, meu amor, eu treino há mais de 20 anos justamente
para esfregar na cara de pessoas que se incomodam como você", respondeu Juju, que reforçou. "Não preciso estar de burca para ser estilosa".

A modelo continuou e disse: "A gente dá uma patada dessa e a gente é o quê? Grossa, arrogante, chata e se acha. Mas a pessoa pode vir aqui falar o que quiser. Ela pode criticar a roupa, dizer que é a pessoa não é estilosa, chamar de vulgar, mas a gente não pode dizer nada", completou.

Ao ser questionada o motivo de sempre aparecer com filtro na rede social, a modelo, sem papas na língua, afirmou que só o marido, o fisiculturista Diogo Basaglia, precisa vê-la desarrumada.

"Porque eu não sou obrigada a aparecer horrorosa para o Brasil inteiro me ver. Sem maquiagem, toda cagada, toda errada. Quem tem que me ver acordando e dormindo com a cara do cão é o marido. É ele que tem me amar de qualquer jeito. O Brasil tem que ver assim... plena", afirmou.

Por falar no marido, ela comentou se tem ciúmes quando Diogo curte fotos de outras mulheres. "Eu vou ser bem sincera, não faço a menor ideia de quem o Diogo curte foto no Insta, sendo de homem ou de mulher. Eu não fico atrás desse tipo de coisa. Confio na postura dele de homem, ele sabe o que é certo e o que é errado", explicou.

Ela também se revoltou com um seguidor que disse que ela tinha que aumentar o salário da funcionária da sua casa, já que ela limpa a "casa enorme sozinha, cuida dos pets e da refeição". "Zero tolerância hoje. As pessoas hoje estão pedindo. Meu amor, a minha funcionária aqui em casa ganha exatamente de acordo com tudo isso que ela faz. Inclusive, ela deve ganhar mais do que você", provocou ela.