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

O último romântico: Gustavo sofre de saudade na primeira festa sem Laís

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

24/03/2022 09h00

Esta é a versão online para a edição desta quinta-feira (24/03) 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.

O cupido do "BBB 22" acertou Gustavo em cheio. O bacharel em direito, que se envolveu com Laís Caldas no confinamento, sentiu o baque da primeira festa sem a amada, última eliminada do programa com 91,25% dos votos. E fora da casa, será que a médica está retribuindo tanto amor?

Sofrência

Na madrugada de hoje, enquanto cantava "Te Assumi Pro Brasil", da dupla Matheus & Kauan, Gustavo lembrou da namorada e, em conversa com Eliezer, desabafou: "A música que tocou, 'o que ninguém fez, você fez em menos de um mês'... Machucou, tá ligado?", disse, com um sorriso amarelo. "Realmente, em um mês, não teve ninguém que fez o que ela fez". Em seguida, com os olhos lacrimejando, o brother voltou a tomar sua bebida em silêncio.

Mais cedo...

Antes da festa, Gustavo estava fritando carne sozinho na cozinha da xepa, quando olhou para sala e viu que o feed da casa havia atualizado. Fotos suas com Laís e outros brothers começaram a aparecer no telão. O brother então parou o que estava fazendo, soltou a frigideira e, sem descolar os olhos da tela, sentou-se na mesa para ficar observando. Fotos da noite anterior, com a amada Laís arrumando sua mala no quarto lollipop, começaram a ar. Uma delas trazia o casal sorridente em uma selfie, com a legenda: "Vai ficar". Gustavo ficou por mais alguns segundos cabisbaixo, olhando para a televisão, e levantou-se de repente quando seu feed acabou para voltar a cozinhar. Ele acabou comendo sozinho.

Fora da casa

Laís também mostra estar envolvida emocionalmente com Gustavo. Na madrugada de hoje, a médica participou do programa "BBB - A Eliminação" (Multishow), com Ana Clara e Bruno de Luca, e fez uma declaração ao seu affair da casa. Na dinâmica "Fogo no Saquinho", a ex-BBB escolheu o emoji "explosão de amor" para o ex-morador da casa de vidro e aproveitou o momento para abrir o coração. "Meu companheiro, meu parceiro, me defendeu. Enfim, ele [Gustavo] tá comigo, tô esperando aqui fora", disse.

Após eliminação de Laís, quem é o favorito para vencer o 'BBB 22'?

Enquete encerrada

Total de 66031 votos
37,19%
Reprodução/Instagram @bbb