;(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();
})();
Gravidez, nudes: o que Britney Spears já fez após ser libertada do pai
Após se livrar da tutela do pai, Britney Spears anuncia que está grávida do 3º filho
Reprodução/Twitter
De Splash, no Rio
12/04/2022 04h00
Britney Speras ficou sob tutela do pai, Jamie Spears, durante 13 anos e não pode tomar as próprias pessoais, artísticas e financeiras. Em 2008, Jamie demonstrou preocupação com a saúde mental da filha e assumiu os comandos de sua vida após decisão judicial.
Mas, em 2021, a história mudou.Ela foi libertada judicialmente e, desde então, vem compartilhando pequenas conquistas diárias com os fãs no Instagram. Já postou fotos ousadas, provou bebidas alcoólicas após mais de uma década e, ontem, aos 40 anos, anunciou que está grávida de seu terceiro filho.
Continua depois da publicidade
Britney Spears é noiva de Sam Asghari
Imagem: Reprodução/Instagram
Nudez
Depois de ter sua feminilidade reprimida durante o período de tutela, como já disse em postagens no Instagram, Britney ou a compartilhar nudes próprios. Ao posar de topless, ainda disse não gostar que apontem 'erros' em seu corpo.
O que há com as consultas para melhorias corporais? Prefiro cair de um penhasco do que o médico me dizer o que ele acha que está errado com o meu corpo. Lição aprendida.
Britney Spears usa a nudez para mostrar que está livre
Imagem: Reprodução/Instagram
Bons drinks
Britney revelou que quebrou jejum alcoólico de quase 14 anos para celebrar fim da tutela de seu pai. Em um post, ela contou que tomou uma taça de champagne "no restaurante mais lindo que já vi" durante jantar comemorativo em West Hollywood.
Continua depois da publicidade
E vinho, também!
Em janeiro, foi a vez da artista comemorar sua primeira taça de vinho em 13 anos. "Tomei minha primeira taça de vinho tinto no fim de semana ado! Eu esperei 13 anos... Isso é tempo suficiente", escreveu.
O item ou a se chamado de "Ovo Britney Spears" após o acontecimento inesperado. Os donos do estabelecimento revelaram que tiveram de negar encomendas feitas por pessoas dos EUA após ajudinha de Britney.
Depois do que minha família tentou fazer comigo, me dei conta que eu preciso ser minha maior torcedora... Estou lembrando a mim e ao mundo quem eu sou! Uma nova música está vindo!
Durante batalha judicial para se livrar da tutela do pai, Britney expressou seu desejo de ser mãe mais uma vez, mas disse que era impedida por Jamie Spears, que não deixava os médicos removerem seu DIU (Dispositivo Intrauterino).
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.