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

2020 resumido em um tweet: Márcia Fernandes revela o ano de cada signo

Uma leonina só esperando a boa do zoom de hoje... - FG Trade/Getty Images
Uma leonina só esperando a boa do zoom de hoje... Imagem: FG Trade/Getty Images

Claudia Dias

Colaboração para Universa

27/12/2020 04h00

No ano do distanciamento social, as redes sociais nunca fizeram tanto sentido. Para matar a saudade de gente querida, se informar ou stalkear a vida alheia, foi no ambiente virtual que muita coisa aconteceu. Ali, também, descobriu-se que nem todo mundo sucumbiu ao ano pra lá de conturbado.

Se fosse para resumir o 2020 da turma do zodíaco nos 280 caracteres de um tweet, por exemplo, seria possível encontrar lamentos, mas também exemplos de felicidade. É o que mostra a astróloga e sensitiva Marcia Fernandes, que conta o que cada signo iria tweetar para mostrar a experiência dos últimos meses.

Um tweet para 2020 de cada signo

Áries

"Não aguento mais essa quarentena. Falta quanto pra acabar? Parece que estou preso. Se me sentir livre logo, capaz de explodir"

De cara, o ariano é o que mais torceu o nariz para o isolamento social infinito de 2020. Isso porque ele precisa de liberdade para agir, resolver problemas ou até para arrumar as tretas em que costuma se envolver.

Touro

"Pelo menos esse ano insano serviu para tomar conta da cozinha. Tô quase me inscrevendo no Masterchef. Mainha, painho e até o doguinho aram muito bem"

Se algum taurino não sabia cozinhar, foi em 2020 que ele aprendeu. O ano trancado em casa permitiu que se reconciliasse com a cozinha. Quem saiu ganhando com isso foi a família, que serviu de cobaia para a experiência.

Gêmeos

"Ai que essa saudade do meu povo querido me mata. Ainda bem que existem o instagram e o twitter pra matar um pouco essa vontade de encontrar todo mundo"

Como era de se esperar, o signo da comunicação não saiu das redes sociais. O nativo de Gêmeos aproveitou cada segundo para acompanhar a vida dos amigos (e dos famosos) nos stories do Instagram e no Twitter.

Câncer

"Me julguem, mas meu coração ficou mais quentinho neste ano, mesmo com toda essa história horrível da pandemia. Estar pertinho da family não tem preço"

Câncer tem um apego extra com a família e o convívio maior provocado pelo 2020 acabou sendo um afago para o nativo do signo, que também deixou à mão os contatos de todos os parentes para checar se alguém precisava de algo, pois cuidar de quem gosta faz parte da sua essência.

Leão

"Só esperando qual a boa de hoje, quer dizer, o zoom pra encontrar gente fina, elegante e sincera. Se não tem rolê dos bons, a gente improvisa. #mechama"

Verdade seja dita, o leonino quase pirou sem ter uma festinha em que pudesse se sentir o centro das atenções. Por isso, se entregou 100% aos encontros virtuais - mas ainda assim não vê a hora de poder participar de um grande encontro pessoal novamente.

Virgem

"Marie Kondo mode on"

É claro que o signo mais organizado do zodíaco aproveitou o tempo de isolamento para dar aquela atenção especial às arrumações da casa e da vida profissional, o que era impossível até o início do ano por conta da sua agenda sempre lotada.

Libra

"Quero saber dos amigues: 2020 foi bom ou ruim? Conseguiu aproveitar o ano ou é melhor jogar fora do calendário?"

A turma de Libra não teve uma opinião totalmente formada sobre o que aconteceu em 2020. Por isso, preferiu ouvir o que as outras pessoas tinham para dizer antes de formar a própria opinião e decidir se deveria ou não entrar em pânico.

Escorpião

"Bora se redescobrir? Tô aqui pra mostrar que no meio da tempestade pode ter bonança. Precisando aí, chama que eu conto como mudei e posso te ajudar a mudar"

Escorpião aproveitou o momento para se redescobrir. O lado místico do escorpiano, sempre tão intenso, possibilitou a descoberta de uma nova religião, crença e até mesmo atividades que favorecem o corpo e a mente.

Sagitário

"Quero ver quem é que vai me prender. Vida nova, mais saudável, mais ar puro, menos coronga. 2020 foi bom, sim"

Na falta de opções para a costumeira liberdade, o sagitariano deu um jeito de se adaptar. Para ele, ficar preso era uma realidade impraticável. Por isso ou a ficar mais em contato com a natureza, com muitas trilhas e cachoeiras no caminho, algo que até curtia, mas não tinha tempo disponível.

Capricórnio

"Já dizia aquele ditado que Deus ajuda quem cedo madruga. Bora pra mais um dia. #tamojunto"

Imagine se o capricorniano iria brecar a vida dele? Era só questão de adaptação. O trabalho continuou com tudo e até mais intenso do que antes, apesar da preocupação constante com as contas e a saúde.

Aquário

"Se uma fake news aparecer no zap da família, manda pra cá que eu desmonto toda a mentira. Já ou da hora de acreditar só em quem diz a verdade, meu povo"

Signo que está sempre à frente, Aquário se manteve bem informado em 2020, sem dar mole para fake news e boatos infundados. Foi um dos que mais buscaram informações sobre o momento, como dados relevantes sobre a doença e a forma de prevenção.

Peixes

"Falta muito pra dezembro acabar?"

O nativo de Peixes se perdeu em pensamentos sobre o que aconteceria este ano. Na maioria das vezes, foram ideias negativas que o colocaram para baixo, incluindo situações que costumam acontecer só na cabeça pisciana. Cuidar da saúde mental nunca foi tão importante.