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

Gêmea revela o que pais de Key Alves acham de OnlyFans e BBB 23

BBB 23: Key e a irmã gêmea Keyt Alves - Reprodução/Instagram
BBB 23: Key e a irmã gêmea Keyt Alves Imagem: Reprodução/Instagram

Do Splash, em São Paulo

22/01/2023 12h47

Keyt, irmã gêmea de Key Alves, revelou o que os pais pensam sobre a sister ter uma página no OnlyFans e estar participando do BBB 23 (Globo).

"Eles apoiaram na hora, desde que não fosse algo tão pornográfico, e não é. Hoje, eles não têm problema algum com isso", revela a atleta, líbero do Vôlei Vinhedo, em entrevista a coluna de Patrícia Kogut, do O Globo.

As estimativas são de que Key fature cerca de R$ 150 mil por mês com a venda de conteúdo na plataforma. Keyt não confirma o valor, mas celebra o sucesso da irmã.

"Ele tem uma equipe, um empresário que cuida dessa parte. Não consigo afirmar. São fotos de lingerie, que ela publicaria tranquilamente no Instagram, mas achou um meio de vender e faturar uma grana", completa.

O que ela comenta comigo, e que já deixou bem explícito em entrevistas, é que está indo bem e vendendo bastante foto.

Keyt também já teve uma página na plataforma, mas não conseguiu conciliar dois trabalhos.

"Por causa da rotina intensa, não consegui fazer esses dois trabalhos, que são participar das sessões de fotos e ter minha rotina de treinos. Acabei descartando. Não cheguei a faturar uma grana tão alta porque não dei continuidade", explica.

"Se tivesse dado, futuramente, cairia bem. Mas não penso em voltar. Graças a Deus, como eu tinha outros meios de trabalho, acabou não fazendo tanta falta", completa. A jovem ainda afirmou que os pais estão viciados no Big Brother Brasil 23, assistindo 24 horas por dia — até mais do que ela.

A gente já sabia que era o sonho dela. Então, vê-la realizando foi uma felicidade para a família inteira.

ENQUETE UOL BBB 23: quem a dupla anjo Aline e Bruno deve imunizar?

Enquete encerrada

Total de 612 votos
28,27%
Reprodução/Globoplay