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

Bate-boca e gritaria: o que foi a treta da espuma de barbear no BBB 23

BBB 23: Treta da espuma toma conta após Festa do Líder - Reprodução/Globoplay
BBB 23: Treta da espuma toma conta após Festa do Líder Imagem: Reprodução/Globoplay

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

16/02/2023 08h00Atualizada em 16/02/2023 14h13

Após a segunda festa do Líder Gustavo no BBB 23 (Globo), os brothers improvisaram o "after dos crias". Dessa vez, os participantes resolveram brincar com uma espuma de barbear no Quarto Deserto e a ideia gerou uma treta generalizada entre aliados e rivais.

A seguir, entenda como a treta da espuma começou na casa.

Festa da espuma de barbear no Quarto Deserto

Ricardo pegou uma espuma de barbear e ou na mão de Bruno, que ou em Bruna. Com isso, a atriz ou espuma em Fred, que se limpou no lençol de MC Guimê. Sabendo que Ricardo começou com a espuma, Fred pega um desodorante e dispara contra o brother.

Sarah Aline, Marvvila e Gabriel Santana também participam do after no Deserto. A cantora, então, pega espuma e a em Larissa, que fica irritada com a situação.

Larissa: "Pegou dentro do meu olho! Alface, vai limpar tudo. Começa trocando a roupa de cama. Ninguém tem limite."

Vendo o que estava acontecendo, Aline se intromete e pede para que brothers parem com a brincadeira. Com isso, pega Marvvila, Bruno e Fred pelo braço para se retirarem do quarto.

Treta generalizada por causa da espuma

Com as reclamações de Aline e Larissa, Ricardo critica a postura da educadora física e destaca que ela é chata.

Ricardo: "Para de ser chata, fica ofendendo."

Larissa: "A única pessoa que fica ofendendo alguém aqui é você."

Larissa: "Do nada, ele que jogou que a culpa é da Lari. Vai se enxergar."

Fred: "A culpa era de quem tava com a espuma, por**, pessoal está com espuma no olho."

Ricardo: "O Guimê que começou, jogou desodorante em mim."

MC Guimê: "Cala a boca, não fiz isso."

Ricardo: "Foi o Fredinho."

Fred: "Lógico, a gente veio só cantar e, do nada, joga espuma."

Bruna: "Você [Ricardo] e Bruno se aram [do ponto]."

MC Guimê: "A Marvvila foi convocada a sair por causa de você [Ricardo]."

Aline e Marvvila se entendem após discussão

Diante da discussão no quarto, Marvvila apontou que Aline a empurrou para fora do Quarto Deserto. A ex-Rouge salientou que essa não foi a intenção, nem quis machucá-la ou ofendê-la.

As duas se entenderam, mas Marvvila ressaltou que tinha ficado chateada com Aline.

Bruno alfineta Aline

Presenciando a discussão entre Marvvila e Aline, Bruno Gaga se posicionou do lado de Marvvila. O brother disparou que o problema é Aline e ela sempre reclama dos pós-festas que os brothers fazem no BBB 23.

Incomodada com a fala de Bruno, a ex-Rouge decidiu mudar de quarto. Com isso, foi dormir no Fundo do Mar.

ENQUETE UOL BBB 23: Em qual lado você está na treta da espuma?

Resultado parcial

Total de 545 votos
8,07%
Reprodução/Globoplay