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

Queridômetro, eliminação e muita estratégia marcam o dia no BBB 23

BBB 23: Queridômetro, eliminação e muita estratégia marcam o dia - Reprodução/Globoplay
BBB 23: Queridômetro, eliminação e muita estratégia marcam o dia Imagem: Reprodução/Globoplay

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

14/02/2023 17h29Atualizada em 14/02/2023 17h29

Hoje é dia de eliminação no BBB 23 (Globo) e a casa mais vigiada do Brasil foi marcada pelo Queridômetro, emparedados pedindo para ficar e muita estratégia.

Confira tudo o que rolou!

Queridômetro

BBB 23: Cezar Black ganhou quase todos os emojis após Jogo da Discórdia - Reprodução/Globoplay - Reprodução/Globoplay
BBB 23: Cezar Black ganhou quase todos os emojis após Jogo da Discórdia
Imagem: Reprodução/Globoplay

Cezar Black recebeu uma grande variedade de emojis no Queridômetro de hoje após o Jogo da Discórdia do BBB 23 de ontem. Na dinâmica, o enfermeiro chamou Ricardo de "desequilibrado" e disse que o brother "se faz de coitado".

Hoje, Cezar ganhou quase todos os emojis disponíveis no Queridômetro, sendo nove "corações", uma "carinha de vômito", uma "cobra", dois "corações partidos", uma "planta", uma "mala", um "biscoito" e um "alvo".

Eliminação

BBB 23: Paula pede nova chance no reality - Reprodução/Globoplay - Reprodução/Globoplay
BBB 23: Paula pede nova chance no reality
Imagem: Reprodução/Globoplay

Bruno, MC Guimê, Paula e Amanda estão no quarto Paredão do BBB 23 e hoje alguém deixa a disputa pelo prêmio para voltar para casa.

Em conversa com Bruna Griphao e Cara de Sapato, o brother Fred Desimpedidos apostou na eliminação da sister Paula devido a sua relação com Cristian que abalou o jogo.

Estratégia no BBB 23

BBB 23: Cristian diz a Amanda que pode comprar Poder Curinga - Reprodução/Globo - Reprodução/Globo
BBB 23: Cristian diz a Amanda que pode comprar Poder Curinga
Imagem: Reprodução/Globo

Após ter jogo duplo na casa revelado, Cristian tem um plano para livrar-se do Paredão no BBB 23 (Globo), mesmo com boa parte da casa contra ele.

Ele, que tem 2700 estalecas, pretende comprar o Poder Curinga, cuja função ainda é desconhecida.

ENQUETE UOL BBB 23: Qual foi o momento mais quente até aqui?

Resultado parcial

Total de 724 votos
70,86%
Reprodução/Globoplay