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

Após ser provocado por pegar camisinha para Eli e Nat, Vyni diz: 'Parei'

BBB 22: Vyni fica sem graça após brincadeira dos brothers sobre Eiezer e Natália - Reprodução/Globoplay
BBB 22: Vyni fica sem graça após brincadeira dos brothers sobre Eiezer e Natália Imagem: Reprodução/Globoplay

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

17/02/2022 14h22Atualizada em 17/02/2022 16h27

Vyni, um dos nomes do "BBB 22" (TV Globo), ficou sem graça em uma conversa entre os brothers na sala de estar sobre os acontecimentos da festa da líder Jade Picon, em especial a transa de Eliezer e Natália, que contou com uma ajuda especial do cearense.

Após Natália revelar que foi Vyni quem pegou camisinha para ela e Eli, o brother, que estava em silêncio, ficou visivelmente envergonhado.

"Aí, o Vyni sempre está na assistência", brincou Scooby, que ontem descobriu que o bacharel em Direito também ajudou Eli em uma depilação íntima. O cearense rebateu:

Eu parei. Vyni

"A parada não está muito boa para o teu lado, não", disse Douglas Silva para Eli.

"Ele não está falando comigo, não. Falando sério, ele não está falando comigo hoje", afirmou o designer.

"É, gente, deixa o Vyni quietinho", pediu Linn da Quebrada.

Antes, o elenco comentava a noite agitada no reality global. "Todo mundo beijando na boca, né", começou Eslôvenia.

"Quem beijou na boca?", questionou Arthur Aguiar. "Laís. Oxe, não viu, não? No seu quarto", contou a miss sobre a médica e Gustavo, que ficaram juntos de madrugada.

Eliezer se juntou ao grupo, e Douglas provocou o designer. "Esse aqui, meu amigo, chutando a manta para a manta esticar, porque ela estava enrolando. Agoniado", brincou o ator.

"Não, fora a trilha sonora, as frases de encerramento foram...", comentou Tiago Abravanel, e o grupo questionou quais foram as frases. "Vou te falar, irmão, foi narrado", afirmou Pedro Scooby.

Rindo, Eliezer questionou os brothers. "Foi narrado? Mas por quem?".

"Teve o negócio de pedir velocidade, rolou uns 'agora', revelou Abravanel.

"Que isso! Não lembro disso não", respondeu o designer, aos risos.

"Não esperou nem o defunto esfriar", brincou Brunna, se referindo à expulsão de Maria, com quem Eli também movimentou o edredom. "O IML está ligando ainda", disse Douglas.

"Ainda rolou um assim: 'Pelo menos a gente estava com o microfone'. A Natália falou", seguiu o neto de Silvio Santos, fazendo o grupo rir.

Depois, foi a vez de Natália se juntar ao grupo e relembrar mais uma vez os detalhes da madrugada. "Eu falei assim para ele: 'Vai, Eli'. Gente, foi uma música de funk completa", disse a sister.

"Por quê? Você falou muita put*ri*?", questionou Eliezer. "Não, mas eu falei assim: 'Fod*''", disse a modelo, fazendo o grupo rir. "Ai, meu Deus! Eu não lembro disso", comentou o designer, se divertindo.

"Caral**, no ao vivo, o Tadeu, quero ver", disse Douglas sobre o programa de hoje à noite. "Não, ele não vai falar nada que eu já conversei. O intuito é ele não falar nada, é ir direto para a dinâmica", disse Natália, rindo.

Após eliminação de Bárbara, quem é o participante favorito do 'BBB 22'?

Enquete encerrada

Total de 15433 votos
39,24%
Reprodução/Instagram @bbb