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

Vyni comenta experiências sexuais: 'Pouquíssimas, quase no singular'

BBB 22: Vyni afirma não ser virgem e comenta experiências sexuais - Reprodução/Globoplay
BBB 22: Vyni afirma não ser virgem e comenta experiências sexuais Imagem: Reprodução/Globoplay

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

23/02/2022 18h14

Após ouvir Arthur Aguiar explicar o que é "chuva de prata", Vinicius, brother do "BBB 22" (TV Globo), comentou sobre suas experiências sexuais com Gustavo e Jessilane.

O papo começou com o grupo falando sobre fetiches envolvendo xixi. "Tem gente que tem altos fetiches estranhos", disse Jessilane. "Eu gosto do negócio convencional também", afirmou Gustavo. "Eu gosto de inovar, mas não tanto assim", afirmou a professora.

Para inovar, primeiro a pessoa tem que começar. Eu não estou acostumado nem com o tradicional, não tem como inovar. Vyni

"Mas você é virgem?", questionou Gustavo, e o brother negou.

"Poucas experiências, né, Vyni", comentou Jessilane, e Vyni seguiu:

Pouquíssimas, quase no singular, né Jessi. Vyni

"Mas você tem que se abrir para isso, você fica prometendo que não vai beijar ninguém", rebateu Gustavo. "Eu quero é trabalhar lá fora, quero gastar meu tempo somente com isso", afirmou o cearense.

"Ah, mas você pode beijar", disse Jessilane. "Você tem que fazer os dois, cara, work hard, play hard", aconselhou o curitibano.

"Mas eu prefiro play hard em outras coisas, nas festas, viagens", explicou o brother. "Então, mas a melhor coisa é você viajar, pegar uma festa e conhecer pessoas novas, tudo isso no mesmo dia", afirmou Gustavo, e Jessilane concordou.

"Estou afim não", descartou Vyni. "Está bom, vamos ver quando chegar lá fora, a galera toda louca", finalizou a professora.

Na última semana, o cearense revelou a Tiago Abravanel e Eliezer que não tem tesão e nem vontade de transar. "Eu não preciso de sexo", explicou Vyni, que disse que não é uma "pessoa para relacionamentos".

O bate-papo seguiu, e Eli, surpreso, questionou novamente o brother: "Você não tem vontade de transar? Você não tem tesão?". "Não", respondeu Vyni sem titubear.

"Nenhum?", Eli indagou mais uma vez. "Não", repetiu o brother.

Qual é a sua amizade favorita do 'BBB 22'?

Resultado parcial

Total de 8855 votos
16,26%
Reprodução/Globoplay