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

Veja quem mandou recado especial para os brothers no 'BBB 22'

BBB 22: D.G, P.A e Arthur recebem mensagens da família - Reprodução/Globoplay
BBB 22: D.G, P.A e Arthur recebem mensagens da família Imagem: Reprodução/Globoplay

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

25/04/2022 17h36

A véspera da final do "BBB 22" (TV Globo) está cheia de emoções para o trio de finalistas Arthur Aguiar, Paulo André e Douglas Silva.

No fim da tarde desta segunda-feira, os brothers receberam uma surpresa de uma ação patrocinada por uma empresa do ramo de varejo. Eles foram convidados a revistarem o ado dentro do jogo e assistiram alguns vídeos da trajetória de cada um.

Além disso, eles também assistiram depoimentos de familiares e se emocionaram com os recados.

Arthur Aguiar recebeu uma mensagem do seu avô. "O momento mais emocionante pra mim foi na saída dele. E fiquei mais emocionado ainda quando ele entrou [no quarto secreto], ajoelhou a Deus e agradeceu por estar ali. Eu quero te dizer que a saudade é muito grande. E muito boa sorte!".

Já Douglas Silva assistiu ao recado da filha, Maria Flor. "Oi pai! No Jogo da Discórdia você recebeu 11 plaquinhas dos brothers, mas mesmo com esse acontecimento, você ergueu a cabeça. Você não desistiu. Então queria dizer que você é muito forte e eu tenho muito orgulho de você e você me inspira demais. Uma coisa que eu aprendi com você foi não desistir tão fácil e tão rápido dos nossos sonhos".

Por mim, a mãe de Paulo André foi quem apareceu no telão, emocionando o brother. "Eu tô aqui lembrando de um momento muito importante para mim, muito comovente, muito emocionante. Foi quando você ganhou a prova da sua primeira liderança. Você estava no quarto, abraçado das nossas fotos, cantando e ali foi um momento que eu fiquei muito emocionada. Eu me emocionei junto com você e chorei junto com você."

A grande final do Big Brother Brasil será nesta terça-feira, e contará com shows de Naiara Azevedo, Léo Santana e Linn da Quebrada, entre outros artistas.

Quem você quer que vença o 'BBB 22'?

Enquete encerrada

Total de 550524 votos
54,74%
Reprodução/Instagram @bbb