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

Duquesa Meghan é alvo de críticas por se "apegar" muito à barriga; entenda

Meghan Markle - Reprodução/Instagram
Meghan Markle Imagem: Reprodução/Instagram

da Universa, em São Paulo

13/12/2018 12h36

Desde sua aparição no British Fashion Awards na segunda (10), Meghan se tornou alvo de mommy-shaming nas redes sociais, uma prática de preconceito e agressão verbal contra mães.

O principal argumento dos críticos? A duquesa de Sussex estaria segurando demais sua barriga em público.

"Que constrangimento, palácio de Kensington! Meghan, já basta de segurar o bebê como se fosse uma bola de futebol. Meu Deus, você realmente facilita que as pessoas a critiquem."

"Meghan Markle, nós sabemos que você está grávida. Você não é a primeira mulher grávida [da história], pode parar."

Houve ainda quem duvidasse de que a duquesa esteja mesmo grávida.

"Interessante assistir à mudança de tamanho da barriga com cada roupa. Eu me pergunto onde estará a barriga de aluguel?"

"Parece que ela pensa que o bebê vai cair."

Outros afirmaram que Meghan está apenas copiando a postura de outras grávidas famosas:

"Meghan Markle está copiando Beyoncé -- ela já copiou outras também. Não há nada interessante ou original em Meghan Markle."

"Meghan Markle deve ser uma grande fã da Demi Moore..."

Outras internautas, no entanto, ressaltaram a importância de não se julgar a postura de Meghan neste momento -- por diversas razões.

"Meu Deus, ela está em um ambiente barulhento. As pessoas parecem esquecer que a barriga não é um objeto inanimado, que há um ser vivo do outro lado. Ela está acalmando o bebê. A antipatia por esta mulher é tão grande que as pessoas esquecem de usar suas habilidades de reflexão."

"Estou grávida no momento e não consigo parar de tocar minha barriguinha. É reconfortante. Parem de dizer às mulheres de cor o que elas devem fazer com seus corpos na gravidez. Vocês não são nossos donos."

"Ah, algo que nunca ouvimos antes, as pessoas julgando as escolhas de vida de uma mulher... Ela não deveria mostrar ao mundo todo que está gestando um bebê dentro de seu útero. Escondam-na até que ela esteja magra novamente. Que regência é esta, Inglaterra? Cresçam. Você será uma mamãe orgulhosa, Meghan Markle!"

"Eu não estou grávida e até eu seguro minha barriga. Deixem a Meghan Markle em paz", concluiu ainda, em tom de brincadeira, uma internauta.