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

Blogueira expõe briga com sister da casa de vidro; equipe se pronuncia

Giovanna, confinada na casa de vidro do BBB 23 - ROBERTO FILHO / BRAZIL NEWS
Giovanna, confinada na casa de vidro do BBB 23 Imagem: ROBERTO FILHO / BRAZIL NEWS

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

10/01/2023 15h33Atualizada em 11/01/2023 09h52

As polêmicas envolvendo Giovanna Leão, uma das sisters da casa de vidro do Big Brother Brasil 23, seguem pipocando nas redes sociais. Após ter tweets racistas expostos, uma blogueira carioca chamada Yas Medeiros também falou sobre uma suposta briga envolvendo a sister.

Em seus stories, Yas disse em tom de deboche: "A racista que me chamou de neguinha tá numa tal de casa de cristal", disse ela, brincando. Ainda segundo a blogueira, Giovanna teria apagado os tweets da briga. Depois, ela compartilhou com seus seguidores o seu lado da história. "Quando eu olhei, eu fiquei muito revoltada", disse Yas, iniciando o desabafo.

A influenciadora seguiu. "Eu ficava com um menino que era meu amigo de infância. A gente ficou um mês, no máximo dois meses. Parei de ficar com ele porque minha mãe não aprovava, aí ele começou a ficar com essa menina. Nisso, ele continuava falando comigo", contou Yas. Ela continuou: "Ela começou a sentir ciúme dessa amizade que existia desde os 7, 8 anos de idade. Ela pegou um print da minha foto, rabiscou a minha cara, e falando com uma amiga dela: 'Nossa, ela é feia'. Aí eu respondi. Não lembro o que eu respondi na época, mas em nenhum momento eu xinguei ninguém. Depois de um tempo, ela ficou cansada de esconder o racismo e falou assim: 'Você tem inveja que a minha b***** é rosa e a sua é marrom', e coisas mais pra baixo", disse a influencer.

A equipe de Giovanna se manifestou sobre as acusações de racismo. "Mostrar quem você é 24h por dia para o Brasil inteiro assistir é um preço que poucos estão dispostos a pagar em nome de um sonho. Ter o seu ado revirado do avesso e julgado pelos juízes da internet, muito menos. Mas a Giovanna resolveu pagar porque está disposta a vivê-lo", disse o pronunciamento.

Enquete BBB: qual participante da Casa de Vidro deve entrar no reality?

Enquete encerrada

Total de 4385 votos
45,43%
FOTOS: ROBERTO FILHO / BRAZIL NEWS