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

Juliana Paes sobre processo de transição capilar: 'Tem que ter paciência'

Juliana Paes sobre transição capilar: "É demorado, tem que ter paciência" - Reprodução/Instagram
Juliana Paes sobre transição capilar: 'É demorado, tem que ter paciência' Imagem: Reprodução/Instagram

De Universa, em São Paulo

08/09/2020 07h58

Juliana Paes, que ou pela transição capilar durante o período de isolamento social por causa da pandemia do novo coronavírus, contou que o processo exige paciência.

A atriz tem exibido o cabelo cacheado com textura natural nas redes sociais — em seu último trabalho na TV, em "A Dona do Pedaço", ela ainda usava o cabelo liso, na pele de Maria da Paz.

"O processo de transição capilar não se faz de um dia pro outro. É demorado, tem que ter paciência", explicou à Quem.

Ela também deu uma dica caseira para cuidar das madeixas: "Para hidratar, uma dica caseira, é usar azeite com baixa acidez. o à noite, faço uma trança frouxinha e vou dormir."

'Me sentindo mais leve', diz Maisa

Também à Quem, Maisa Silva contou que começou a usar o cabelo liso na época em que fez a novela "Carrosel", em 2012, mas decidiu iniciar a transição há cerca de dois anos.

"Continuava fazendo escova, mas não recorria ao processo das químicas. Agora, neste ano, como já estava em um comprimento legal cortei. Estou amando, me sentindo mais leve", afirmou a atriz e apresentadora.

Em junho, em um vídeo publicado em seu canal no Youtube, ela já havia compartilhado algumas questões sobre o processo. "Cabelo mexe com a nossa autoestima, e transição capilar é um processo de escolha e aceitação", explicou na ocasião.

Paula Amorim: Redescobrindo meus cachos

A ex-BBB Paula Amorim disse alisa os cabelos há mais de 15 anos, mas desde novembro do ano ado não faz mais isso."Estou redescobrindo meus cachos e estou amando", afirmou à Quem.

"Tenham em mente que a transição é sua. Seus cabelos e suas regras e se joga no cabelão. Eu estou amando o resultado", aconselha.