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

Gretchen rebate críticas por exibir pernas nas redes: 'Mais engajamento'

Ao rebater críticas, Gretchen afirmou que bloqueia os perfis que fazem comentários negativos sobre sua aparência - Reprodução/Instagram
Ao rebater críticas, Gretchen afirmou que bloqueia os perfis que fazem comentários negativos sobre sua aparência Imagem: Reprodução/Instagram

De Splash, em São Paulo

03/12/2022 10h34Atualizada em 03/12/2022 11h25

Gretchen enviou um recado para os seguidores que criticaram seu corpo em um vídeo para uma marca de cerveja, em que a cantora usava um shortinho e um top cropped, com parte da barriga à mostra. A "Rainha do Bumbum" reafirmou que se sente bem com a própria aparência aos 63 anos e que não se abala com os comentários negativos que recebe ao investir em looks decotados.

"Bom dia, galera. Cá estou eu lendo os comentários do post que fiz, da Brahma, e aí as mulheres assim: 'Está com perna de 62'. Gente, eu só posso ter perna de 62", disse ela, no Instagram.

Gretchen ainda chamou a atenção para o erro com a idade: "Aliás, vocês diminuíram um ano, né? Por que eu tenho 63 e estou com perna de 62, estou ganhando um ano".

"Gente, quando vocês vão aprender que eu não estou preocupada com o que vocês acham, com o que vocês pensam sobre a minha perna, o meu corpo, o meu cabelo? Quanto mais vocês falam, mais engajamento vocês me dão, entendeu? Eu não estou preocupada", rebateu a cantora, destacando ainda que sua atual forma física é resultado de uma rotina intensa na academia.

"'Ah agora ela está quadrada, não tem cintura'. Sabe por que eu não tenho cintura? Porque eu malho muito. Todo muito que malha muito não tem cintura, que nem a Gracyanne. Tem músculo, barriga dura, não sobra nada, não tem nem o que pegar, olha só que belezinha", disse Gretchen, puxando a pele do abdômen para "provar" a declaração.

A artista, que esteve no Catar nos primeiros jogos da Copa fazendo uma cobertura para o Twitter "Choquei", já está de volta ao Brasil e confirmou presença na "Farofa da GKay", evento de três dias que celebra o aniversário da humorista, conhecido por reunir influenciadores. Ao concluir o recado para os haters, Gretchen falou sobre a boa fase na vida pessoal e deixou claro que bloqueia as contas de quem envia comentários negativos.

"Enquanto vocês estão preocupados, eu estou vivendo, estou sorrindo, curtindo a minha vida. Segunda eu estou na farofa da Gkay, em Fortaleza, tomando meu sol, com o meu boy magia, enquanto vocês estão se preocupando. E ah, esqueci de dizer, com essa pele maravilhosa, preciso nem falar, né? Entendedores entenderão. Enquanto aqueles que falam, só se fizer um Instagram novo, porque ó: bloqueados. Adoro bloquear, enquanto estou fazendo um tratamento de bumbum, fazendo meu cabelo, minha unha, estou lá bloqueando. Bom final de semana pra vocês que estão preocupados com a minha vida", concluiu ela.