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

Cadê o fogo no parquinho? Jogo da discórdia só dá paz ao BBB

BBB 22: jogo da discórdia não rendeu "fogo no parquinho" - Reprodução/Globoplay
BBB 22: jogo da discórdia não rendeu 'fogo no parquinho' Imagem: Reprodução/Globoplay

Isadora Tega

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

25/01/2022 09h14

Esta é a versão online para a edição desta terça-feira (25/1) da newsletter Splash TV, o seu resumo diário sobre a melhor cobertura de BBB 22. Para esse e outros boletins e recebê-los diretamente no seu email, cadastre-se aqui.

Nem mesmo a dinâmica que era para ser da discórdia foi capaz de tacar 'fogo no parquinho' do "BBB 22". O famoso jogo do pódio, em que os participantes mostram como gostariam que fosse a final do programa, foi em clima de 'jogo da concórdia', com os brothers exalando paz e amor. A produção dor reality também não ajudou no entretenimento, já que a placa de "não ganha" ficou de fora — o que foi criticado pelo público.

O 'campeão'

Ao fim da dinâmica, Vyni foi o recordista de pódios, aparecendo em 7 — Paulo André, Rodrigo, Laís, Eslovênia, Eli, Lynn da Quebrada e o dele mesmo. Atrás do brother ficou Tiago Abravanel, em 5 pódios, e Douglas, em 4.

De fora

Do outro lado, quatro participantes não foram escolhidos para integrar uma final dos sonhos. Foram eles: Arthur Aguiar, Linn da Quebrada, Jade Picon e Naiara Azevedo. Vale lembrar que os três primeiros entraram no programa três dias depois dos outros brothers. O trio estava com covid-19 e precisou aguardar liberação médica para se juntar aos outros.

Desabafo

Apesar do clima de 'jogo da concórdia', a dinâmica parece ter magoado Linn da Quebrada. A sister não foi incluída em nenhum dos pódios montado pelos brothers. Na área externa, Lina desabafou dizendo que o jogo mexe com os participantes. Jessilane consolou a colega. "Demais, mas você vê que vocês três que entraram por último não estiveram no pódio de ninguém. [...] É literalmente uma guerra contra o tempo pra vocês se igualarem aos demais", disse Jessi, acrescentando que Linn chegou há pouco tempo, mas tinha menos intenções de voto que participantes que já estavam na casa, tentando animá-la.

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

Enquete encerrada

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