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

'Oi, sumido': sexo com ex pode ser bom, mas muito perigoso

É melhor ir com calma com o ex - Getty Images/iStockphoto
É melhor ir com calma com o ex Imagem: Getty Images/iStockphoto

De Universa, em São Paulo

29/06/2023 04h00

Sábado à noite, sem nada para fazer e o telefone toca. Os temidos "ex", quando ligam, certamente estão querendo uma noite para relembrar os velhos tempos. Os sentimentos são conflitantes: se por um lado transar com uma pessoa com quem você já se relacionou pode ser uma experiência prazerosa, no dia seguinte você poderá lidar com uma dose de culpa ou com a incerteza sobre seus sentimentos.

É muito natural ter desejo sexual por um ex-namorado, namorada, marido ou mulher, mesmo que o amor já não exista mais.
As razões para procurar um "ex" para sexo casual são muitas, mas o fato de conhecer a pessoa e ter construído uma intimidade que não se consegue em um primeiro encontro são os motivos mais significativos.

Como evitar dores de cabeça?

Defina as regras do jogo

Muitas vezes, quando o amor acaba, o desejo permanece e pode aumentar. Algumas pessoas, no entanto, temem que um momento de prazer possa trazer à tona traumas do relacionamento ou criar falsas esperanças em um dos envolvidos.

Incapacidade de se libertar

Para alguns, lidar com o sexo casual é muito simples. Mas é importante saber que cada pessoa lida de um jeito com essa prática. E não são apenas as mulheres que podem se sentir usadas ao perceber que tudo foi apenas uma noite de sexo.

O problema cresce quando a pessoa sabe que vai se frustrar, mas não consegue recusar os convites. Para evitar o sofrimento, é preciso conhecer seus limites e respeitá-los.

Chega! De novo?

Colocar um ponto final pela segunda vez com uma mesma pessoa pode ser uma atitude dolorida, mas é fundamental que os parceiros não se sintam obrigados a atender a todos os chamados. E se é você quem costuma tomar a iniciativa do convite, prepare-se para um possível não —assim como você não deve aceitar nenhuma proposta por educação.

Fontes: psicólogas Claudia Feliciano e Luciana Barros