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

CAT BBB: Dani Calabresa estreia quadro zoando Rodrigo e os memes da Jade

BBB 22: Dani Calabresa estreia no CAT BBB - Reprodução/instagram
BBB 22: Dani Calabresa estreia no CAT BBB Imagem: Reprodução/instagram

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

25/01/2022 23h05Atualizada em 25/01/2022 23h30

Dani Calabresa estreou a CAT BBB —Central de Atendimento ao Telespectador e em breve os telespectadores vão descobrir quem será o primeiro eliminado do paredão do "BBB 22" (TV Globo).

A humorista começou o quadro com a entrada de Naiara Azevedo no programa, fazendo alusão à sua estreia no CAT BBB. "Avisa que eu cheguei!", disse a cantora na ocasião. "Eu também, amiga! Isso aí Brasil, eu e a Naiara chegamos!", avisou Calabresa.

Dani não poderia deixar de satirizar a primeira festa com DJ Alok. Após saber que o cantor ficaria apenas 45 minutos, a humorista brincou: "Amiga, curte cada segundinho das músicas aí. Ah não ser que.. Peraí! Entrega para Alok e diz que foi o chefe", falou lembrando que o DJ continuou o show após um recado do Boninho, diretor do programa.

Para fechar o quadro de humor com chave de ouro, a humorista lembrou de alguns memes da Jade Picon e de Rodrigo Mussi. "Após post da Jade, o pão com ovo sobe de preço", falou. "Ele é gato, pena que fala. Gummy, olha para o Rodrigo discretamente e pede para ele ficar quietinho por três meses", brincou.

Ao final, ela pegou um esparadrapo e tapou o umbigo. "Pera aí, minha filha. Vou tampar o umbigo, seguindo Jade, minha musa. Fofa essa menina né, gente? Tenho que tomar cuidado por que se não Mionzeira vai falar que eu preciso me impor mais com os brothers. Tadeu, se quiser, fecha seu umbigo!", finalizou Dani.

Saudades, Rafael Portugal

Porém, foi o nome de Rafael Portugal que ficou em primeiro lugar entre os assuntos mais falados no Twitter. Os telespectadores sentiram falta do humorista no comando do C.A.T e até compararam os apresentadores.

Quem você quer que seja eliminado do 'BBB 22'?

Enquete encerrada

Total de 171650 votos
44,76%
Reprodução/Instagram @bbb