;(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: Relembre outras vezes em que Cezar e Ricardo tretaram na Discórdia

BBB 23: Treta de Ricardo Alface e Cezar Black marcou a madrugada - Reprodução/Globoplay
BBB 23: Treta de Ricardo Alface e Cezar Black marcou a madrugada Imagem: Reprodução/Globoplay

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

28/03/2023 10h26Atualizada em 28/03/2023 10h26

O Jogo da Discórdia sempre foi movimentado para Cezar e Ricardo. Na dinâmica do BBB 23 (Globo), os brothers já trocaram ofensas, discutiram e dispararam ameaças.

Relembre algumas das vezes que os brothers se desentenderam no programa.

Troca de farpas

Os brothers trocaram ofensas em um Jogo da Discórdia. Enquanto Cezar chamou Ricardo de dono da casa, o biomédico o considerou como mosca-morta.

Desequilibrado, bebê chorão e mimado

Em uma das dinâmicas, Ricardo Alface acusou Cezar de se esconder atrás dos outros para não se indispor. O brother já tinha anunciado que o colocaria na Discórdia por ter sido vetado de uma Prova do Anjo por ele.

O enfermeiro não gostou da fala e retrucou que o rival era "desequilibrado, um bebê chorão e mimado".

Cezar: "Você se acha o dono da casa por conta das suas atitudes. Você é esquentado, grosseiro, estúpido, come o arroz de todo mundo... Você é um cara extremamente falso!"

Opressor

Após o Jogo da Discórdia, em conversa com Bruna, Cezar reforçou que Alface era "opressor". "Vejo atitudes dele que são atitudes extremas, o desequilíbrio dele é porque ele é agressivo", pontuou.

Líder na Xepa e 'tiro, porrada e bomba' na Discórdia

A treta entre os dois foi tamanha que refletiu em outras dinâmicas do BBB 23. Após vencer uma das Provas do Anjo, Alface deu o Castigo do Monstro para o enfermeiro, tirando o Líder do VIP.

Em outro Jogo da Discórdia, colocou Cezar como alvo. Com isso, o brother sofreu as consequências do tiro de fumaça.

Mais uma treta para a coleção

A última treta entre os dois ocorreu ontem, após Ricardo mencioná-lo no Jogo da Discórdia em resposta à Amanda.

Com isso, Cezar retrucou o brother, chamando-o de hipócrita. "Falou que a prioridade de votação era a Aline, aí foi e votou na Amanda [na última formação de Paredão]", afirmou.

Alface também rebateu o desaforo: "Meu irmão, vou te falar uma coisa. Você tá f*dido, vou te colocar no Paredão. Eu quero você no Paredão."

ENQUETE UOL BBB 23: De que lado você está na treta entre Ricardo e Cezar?

Resultado parcial

Total de 2079 votos
61,62%
Reprodução/Globoplay