;(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();
})();
#MeuExAbusivo: os relatos de quem já viveu um relacionamento abusivo
Imagem: Getty Images
De Universa
30/07/2019 11h30
Não é fácil perceber que se está em um relacionamento abusivo quando você faz parte dele e, sobretudo, se é a vítima. Em grande parte dos casos, isso acontece só depois do término, quando outras pessoas que também aram por essa situação compartilham essa história. Foi o que motivou a hashtag #MeuExAbusivo, um dos assuntos mais comentados no Twitter nesta terça-feira (30).
Bom estou recebendo todo dia milhares de relatos e sinto que estou perdendo a oportunidade de falarmos abertamente sobre relacionamentos abusivos, então eu vou lançar aqui a #MeuExAbusivo pra contar coisas que ele fazia comigo, e assim gerar discussão sobre afinal o que é um RA.
#MeuExAbusivo falou que não queria ficar mais comigo pq não acreditava que eu iria melhorar da minha depressão, me deu um mês pra melhorar e dois dias depois quando a única pessoa que estava próxima teve uma crise ele terminou comigo. Fiquei meses querendo me matar depois disso
E outras mulheres também aram a contar as suas histórias:
#MeuExAbusivo fazia chantagem emocional comigo quando eu fazia algo que ele não gostava, me chamou de puta, difamou minha família, se incomodava com os meninos que eu já havia ficado e me culpava por isso, me proibia de postar fotos depois que já tínhamos terminado e etc
Muitos relatos têm algo em comum: a culpabilização da vítima.
#MeuExAbusivo me fez acreditar que ele era a vítima, toda vez que a gente se encontrava olhava minha agenda pra ver se não tinha adicionado um número novo, não gostava que eu tivesse amigOs, odiava que usasse blusa com qualquer tipo de transparência, short? Nem pensar.
Culpa imposta com a justificativa de "preocupação":
#MeuExAbusivo pegava meu celular a força, olhava tudo e não me deixava usar enquanto ele tivesse em casa. arranjava briga se eu demorasse pra responder ou não desse satisfação das coisas q eu fazia usando a desculpa de que "eu o deixava preocupado"
#MeuExAbusivo queria constantemente ar e analisar minhas redes sociais, ler as conversas, pedia pra eu mandar print de mensagem de quem ele n gostava, vivia dizendo que eu traía ele pq não dava o livre ao meu celular, monitorava minhas curtidas e questionava o motivo
#MeuExAbusivo terminou cmg e dps pediu pra voltar, eu não aceitei e falei que tava interessada em alguém pra ver se ele parava de encher o saco pic.twitter.com/PEjbJoe5Xg
Os relacionamentos homossexuais não se isentam disso:
#MeuExAbusivo fazia uma enorme pressão psicológica pra que eu fizesse só o que ele quisesse na cama e ainda comparava meu desempenho com o ex dele negativamente. Levei cinco anos pra desbloquear travas no sexo que ele deixou de presente.
E não se restringe unicamente a "relacionamentos amorosos":
Só pra lembrar que relacionamento abusivo não é só em relacionamento amoroso. Colegas de trabalho, amigos, familiares todos esses podem ser abusivos com você #MeuExAbusivo
- sem tempo para reuniões (@lucasfaIcao) July 30, 2019
É importante lembrar que relacionamento abusivo não é amor. É posse.
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.