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

Previsão diária de Virgem

Virgem -  -

10 de Junho

O dia é ótimo para se focar em práticas espirituais ou terapias que visem o equilíbrio emocional. Dedique algum tempo à meditação ou à escrita, será ótimo para ar o seu mundo interior. Identificar e liberar bloqueios emocionais poderá promover uma transformação bastante positiva.

Receba as previsões de Virgem por email

Email inválido

Previsão semanal de Virgem

Semana de 08/06 a 15/06

Previsão para Virgem

A semana pode trazer alguns ruídos nas relações com grupos, equipes ou amizades. Mesmo que haja um esforço para se fazer entender, as fala...

Previsão mensal de Virgem

Junho

Cenário do mês

Logo no início do mês, é importante prestar atenção aos pensamentos que alimenta e aos ambientes que frequenta. Filtrar informações e preservar ...

Virgem no trabalho

Terra é o elemento que rege este signo, que graças a isso traz como aspecto forte a racionalidade. Ter o pé no chão permite que pessoas de Virgem consigam se sair bem trabalhos organizacionais, istrativos e sistemáticos. Facilmente vai ganhar a confiança de pessoas que estão em posição de liderança. Tende a fazer carreira em poucas empresas, sempre com muito tempo de experiência em cada uma. Não aceita pedir dinheiro emprestado e pode até mesmo ser considerada mão de vaca. Porém, sabe para onde vai cada um dos seus centavos e sempre dá um jeito de pagar todas as contas.

Virgem no amor

Românticas, as pessoas de Virgem esperam um amor ideal, romântico e que alimente seus sonhos. No começo podem se mostrar inseguras e insistentemente fechadas, pouco abertas a brincadeiras ou investidas mais íntimas. Quando se entregam a um relacionamento, é para valer e com certeza têm expectativas de construir uma família, ter um lar e um amor duradouro. Devem tomar cuidado para não cair na rotina e deixar os momentos de prazer de lado pensando nas obrigações do lar. É preciso sentir confiança para se entregar no sexo.

Virgem na família

Pessoas de Virgem sentem necessidade de cuidar da vida daqueles que as cercam. Não no sentido negativo, mas com o objetivo de proporcionar qualidade de vida e de suprir as necessidades mais básicas. Isso pode trazer uma certa frieza no trato com o outro. Com filhos e amores, Virgem deve tomar cuidado para não ser controlador. No mais, é aquela pessoa sábia que será fonte de conhecimento quando alguém precisar.


Horóscopo