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

Seu namoro é ioiô? 4 dicas para o relacionamento finalmente dar certo

Ticiane Pinheiro e Cesar Tralli reatam namoro  - Reprodução /Instagram
Ticiane Pinheiro e Cesar Tralli reatam namoro Imagem: Reprodução /Instagram

Vivian Ortiz

Do UOL

22/05/2017 15h57

O jornalista Cesar Tralli e a apresentadora Ticiane Pinheiro usaram suas redes sociais para anunciar que retomaram o namoro. O casal havia terminado a relação de dois anos em outubro de 2016. Antes, no entanto, eles ficaram juntos do início de 2014 até setembro do mesmo ano, quando romperam e reataram um mês depois.

Tudo deu certo até outubro de 2016, quando os dois anunciaram um novo término. Agora, depois de cerca de sete meses separados, retomaram novamente o namoro.

Será que dá para ter sucesso em um relacionamento cheio de términos e voltas? O UOL conversou com a psicóloga clínica Sabrina Gonzalez e te dá algumas dicas para esta nova fase da relação.

1 - Vale a pena mesmo?

De acordo com a especialista, o que costuma alimentar um relacionamento "ioiô" é a baixa autoestima dos dois integrantes do casal. "É como se a falta perspectiva de arranjar alguém melhor faça com que os casais se agarrem ao que têm, mesmo quando ninguém está satisfeito", diz.

A situação acaba se tornando insustentável e provoca conflitos constantes, além de separações, mas, mesmo assim, a dupla não consegue romper de uma vez por todas. Que tal refletir melhor se realmente é válido voltar para o antigo amor antes da nova tentativa?

2 - Comecem do zero

Pensou, pensou e decidiu que dessa vez vai ser tudo diferente e que você e o "mozão" serão felizes para sempre? Então é melhor mudar de estratégia na tentativa de fazer essa história finalmente dar certo.

De acordo com a especialista, o correto é começar o relacionamento do zero, com os dois dispostos a reconhecerem os comportamentos tóxicos que costumam ter e se comprometendo a mudarem isso. Caso contrário, a chance de tudo dar errado novamente é enorme.

3 - Cresçam e amadureçam

Além da questão da baixa autoestima, existe ainda uma grande imaturidade nesses casais também. "Ambos não conseguem lidar de forma adulta com as adversidades que surgem no decorrer de um relacionamento a dois", diz a psicóloga clínica. Com isso, ao primeiro sinal de irritação, os dois brigam, mas ao invés de agirem de forma madura atrás de uma solução, logo optam por se separarem, na ilusão de encontrarem um outro alguém e uma relação sem dificuldades. Isso não existe.

"O que define a maturidade não é quantos anos a pessoa têm, mas sim as vivências pelas quais ou e o quanto ela cresceu com isso em sua trajetória", explica Sabrina. Ou seja: use as discussões como forma de aprendizado para melhorar de vez a relação com o par.

4 - Evitem os mesmos problemas

Terminou antes porque a pessoa era excessivamente ciumenta e, ao voltarem, os dois continuam brigando pelos mesmos problemas? É hora de ligar o sinal de alerta. Se os dois não mudarem seu comportamento sobre aspectos que desagradavam o outro, é questão de tempo para uma nova discussão e término.

"Existe até uma frase de Freud muito interessante, sobre a questão de o problema não é ter problema, mas sim os mesmos problemas. E é justamente isso: como insistir em um relacionamento assim? Melhor recomeçar do zero e propor uma mudança mútua para dar certo, se não os dois vão fracassar do mesmo jeito que das outras vezes", diz a psicóloga.