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

BBB 23: Cezar alfineta Bruna sobre treta: 'Sempre se sente injustiçada'

BBB 23: Cezar aconselha e alfineta Bruna - Reprodução/Globoplay
BBB 23: Cezar aconselha e alfineta Bruna Imagem: Reprodução/Globoplay

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

15/03/2023 12h20Atualizada em 15/03/2023 12h48

Cezar Black e Bruna Griphao conversaram sobre a relação entre a atriz e Ricardo Alface no BBB 23 (Globo). Os dois eram aliados, porém as circunstâncias do jogo distanciaram os brothers.

Cezar tentou levar o lado de Ricardo para a atriz, que não aceitou muito bem os conselhos.

Bruna: "O que me magoou foi quando ele pegou uma coisa que tava resolvida num momento de raiva. Tipo: 'Não vou esquecer o que você disse'. Aí eu chorei, falei que ele era uma pessoa baixa por trazer isso."

Cezar: "Quando eu falei disso, você falou: 'É do jogo, todo mundo tá fazendo isso'. Mas, quando você entende que ele fez a mesma coisa e você tá se sentindo magoada?

Bruna: "Mas eu tô falando que entendo você se sentir magoado, não tô falando que você tá errado."

Cezar: "Todos aqui temos uma visão parcial. Quando é referente a nós, nos sentimos super ofendidos, super injustiçados. Quando é referente ao outro: 'Ah, mas veja bem...'. E é assim, Bruna. É o problema de todos aqui dentro. Nós olhamos os defeitos dos outros, apontamos os defeitos dos outros, mas os nossos, por mais que você fale que reconhece, você sempre se sente injustiçada. Você entende? As coisas que você aponta nele como erros, você consegue melhorar?"

Bruna: "Não, mas o meu negócio com o Facinho é eu falar: 'Vamos dividir a culpa?', e ele dizer não. (...) Sentia que ele tava sempre numa defensiva comigo, e isso foi alimentando até o momento que ele falou: 'Tô de saco cheio de você'. Eu falei: 'Tá bom'. Não sinto que tem muita volta nisso."

Cezar: "Mas lembra que você falou coisas pesadas pra ele? Você disse coisas pesadas, ele disse coisas pesadas também. Ele não tá certo, e você também não. Vocês dois acumularam coisas. Eu, de fora, consigo falar pra você. Não porque eu gosto mais do Alface ou mais de você. Eu tô tentando fazer um julgamento justo."

ENQUETE BBB 23: Quem é o mais odiado após eliminação de Larissa?

Resultado parcial

Total de 3333 votos
4,98%
Divulgação/Globo