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

Britney celebra Natal antecipado: 'Razão para encontrar mais alegria'

Britney Spears celebra Natal antecipadamente  - Reprodução/Instagram
Britney Spears celebra Natal antecipadamente Imagem: Reprodução/Instagram

Colaboração para Splash

16/10/2021 18h28Atualizada em 16/10/2021 19h08

Britney Spears, 39 anos, que recentemente se viu livre da tutela de seu pai, James Spears, celebrou antecipadamente o feriado de Natal em seu Instagram.

"Estou comemorando o Natal bem cedo neste ano, por que não? Acredito que qualquer motivo para encontrar mais alegria na vida é uma boa ideia e não é segredo que ei por muita coisa", escreveu a cantora, compartilhando a foto de uma árvore natalina.

Na postagem, ela desabafou a respeito da nova situação em que se encontra.

Vou ser honesta e dizer que esperei tanto tempo para me livrar da situação em que estou, que agora estou aqui com medo de fazer qualquer coisa porque tenho medo de cometer um erro. Por tantos anos, sempre me disseram que se eu tivesse sucesso nas coisas, isso poderia acabar. E nunca aconteceu! Eu trabalhei tanto, mas agora que está aqui e cada vez mais perto do final, estou muito feliz, mas ainda há um monte de coisas que me assustam". Britney Spears

A cantora contou que só recentemente conseguiu ter o ao seu carro pela primeira vez nos últimos 13 anos.

"Então, como eu disse, estou com medo de fazer algo errado. Não vou postar tanto em um mundo onde somos livres, o que é vergonhoso. Comecei a sentir isso quando peguei as chaves do meu carro pela primeira vez, 4 meses atrás, após 13 anos. Não tenho feito nada para ser tratada da maneira que tenho feito nos últimos 13 anos. Estou enojada com o sistema e gostaria de morar em outro país".

Ela aproveitou ainda a oportunidade para alfinetar sua família. "Senhor, tenha piedade das almas da minha família se eu fizer uma entrevista. Nesse meio tempo, vou ficar longe dos negócios, o que é tudo que eu conheci durante a minha vida inteira. É por isso que isso é tão confuso para mim. Deus abençoe todos vocês", finalizou.