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

Guerra dos carecas! Entenda como começou a nova treta entre Alface e Black

BBB 23: Ricardo e Cezar Black discutem por votos - Reprodução/Globoplay
BBB 23: Ricardo e Cezar Black discutem por votos Imagem: Reprodução/Globoplay

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

01/04/2023 12h07

Cezar Black e Ricardo Alface viveram essa última semana no BBB 23 (Globo) entre tapas e beijos. Os brothers trocaram farpas, se acertaram e discutiram de novo na noite desta sexta-feira.

Entenda tudo o que rolou entre os dois e o que deu origem à 'Guerra dos Carecas'.

Origem da treta

A origem da nova discussão veio do Jogo da Discórdia, quando Amanda chamou Ricardo de 'maior decepção'. O brother não curtiu e colocou o nome de Cezar no assunto. O enfermeiro também não curtiu ser envolvido e expôs o jogo de Alface.

Depois disso, Ricardo disse que votaria em Black no próximo Paredão. Essa foi uma pauta que se arrastou pela semana.

Black conversou com as sisters do Deserto sobre o jogo de Alface, e pensava que o brother jogava com os dois grupos da casa. Aline e Amanda disseram que, se ele estava jogando em um grupo, era com o Fundo do Mar.

Domitila também questionou as sisters sobre os posicionamentos de Alface, e ouviu uma coisa diferente das sisters. Os brothers do Fundo do Mar se juntaram, e Cezar afirmou que Larissa e Amanda mudaram a versão da história. Depois dessa conversa, Ricardo e Black pediram desculpas um ao outro.

No dia seguinte, durante a Prova do Líder, Fred Nicácio pediu que Alface não votasse em Black, caso vencesse. Ricardo disse que não votaria, caso Cezar ficasse com ele em segundo ou terceiro lugar.

Após a Prova, que deixou Ricardo em segundo lugar, Amanda conversou com Black sobre a postura do brother. Ricardo não gostou de saber do papo, e os dois bateram boca novamente.

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