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

Cabelo lavado em pia e 24h de viagem: a saga de Karoline do Qatar à Farofa

Karoline Lima estava no Qatar antes de ontem e, na noite de ontem, na Farofa da Gkay, em Fortaleza - Reprodução/Instagram
Karoline Lima estava no Qatar antes de ontem e, na noite de ontem, na Farofa da Gkay, em Fortaleza Imagem: Reprodução/Instagram

De Splash, em São Paulo

06/12/2022 10h06Atualizada em 06/12/2022 15h03

Karoline Lima, de 26 anos, estava há dois dias no Qatar assistindo à Copa do Mundo. De repente, a influenciadora apareceu na Farofa da Gkay, ando o rodo.

Ela beijou pelo menos quatro pessoas: o ex-BBB Rodrigo Mussi, o youtuber Jon Vlogs e os influenciadores Nilson Neto e Júlia Puzzuoli.

Mas como Karol chegou tão rápido no Brasil? A resposta é simples: ela ou quase 24 horas viajando.

1 - Reprodução/Instagram - Reprodução/Instagram
Story de Karoline Lima
Imagem: Reprodução/Instagram

Do Qatar para o Brasil são cerca de 14 horas de voo. Karol saiu do país, onde, além de assistir aos jogos, comeu a famigerada carne com ouro, no dia 4.

Ela aterrissou no aeroporto de Guarulhos, em São Paulo, por volta das 17h de ontem. Para adiantar a preparação para a festa, lavou o cabelo na pia de um banheiro do aeroporto.

"Como vocês podem ver, meu cabelo está imundo. Quando eu chegar na Farofa, já quero curtir. Não vai dar tempo de lavar meu cabelo. 'Gênia', ei no duty free, comprei meu shampoo e minha máscara e vou lavar o cabelo na pia", explicou.

"Não tenho pente e meu secador está diferente... Meu secador não funcionou muito bem, mas pelo menos eu lavei o cabelo. Se eu fosse chegar em Fortaleza, ainda lavar o cabelo e secar, ia perder tempo. Um tempo que eu poderia estar usando ficando bêbada".

A influenciadora digital secou os fios no secador de mãos, os penteou com os dedos e até brincou sobre um momento da sua viagem. "Lembrando aqui que eu estava comendo carne com ouro dois dias atrás".

1 - Reprodução/Instagram  - Reprodução/Instagram
Karoline Lima mostra a preparação para a Farofa da Gkay
Imagem: Reprodução/Instagram

De Guarulhos, Karol foi para Fortaleza. Chegando na cidade, ou um tempinho com a filha Cecília e seguiu para a Farofa. O resto é história.

De selinho a beijo triplo: confira os beijos da Farofa da Gkay