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

Marido de Jojo Todynho volta a ser atacado: 'Não aguento mais'

Jojo Todynho e Lucas Souza - Reprodução/Instagram
Jojo Todynho e Lucas Souza Imagem: Reprodução/Instagram

Colaboração para Splash, em São Paulo

22/03/2022 07h37

O militar Lucas Souza, de 21 anos, marido da cantora Jojo Todynho, de 25 anos, usou as redes sociais na noite de ontem para desabafar sobre os ataques que voltou a receber por ter se casado com a funkeira.

"Tem dias que são fo**! Parece que o objetivo das pessoas é fazer você se sentir mal, eu sempre trabalhei muito e estudei e estudo muito e quero focar cada vez mais nisso, quero me afastar das pessoas e só ficar com quem eu realmente gosto!!! E só cuidar para não ser uma pessoa ruim", iniciou o rapaz.

"Nunca fiz mal a ninguém, sempre procurei cuidar da minha vida, e não sei por que as pessoas me perturbam tanto, sabe! Sempre lutei sozinho pelos meus objetivos e conquistei minhas coisas, e vou conquistar muito mais, mas ninguém vê isso!!! Só ficam aí me xingando mais e mais. Chega uma hora que você não aguenta mais", continuou.


Parece que eu ter me relacionado com alguém abonou todas as coisas que já fiz na minha vida. Eu não aguento mais esse povo perturbado me mandando mensagens diariamente me xingando. Eu não fiz nada pra ninguém, eu quero me isolar cada vez mais das pessoas e ficar na minha", lamentou.

"Eu tenho 21 anos e tenho muitas conquistas na minha vida! eu nunca dependi de ninguém. Desde os 15 anos me viro sozinho, e não vou ar por cima de ninguém para atingir meus objetivos", finalizou Lucas.

Recentemente, o oficial do exército brasileiro chegou a se afastar das redes sociais por conta dos haters.

Lucas Souza faz desabafo sobre haters - Reprodução/Instagram - Reprodução/Instagram
Imagem: Reprodução/Instagram

Lucas Souza faz desabafo sobre haters - Reprodução/Instagram - Reprodução/Instagram
Imagem: Reprodução/Instagram

Lucas Souza faz desabafo sobre haters - Reprodução/Instagram - Reprodução/Instagram
Imagem: Reprodução/Instagram

Lucas Souza faz desabafo sobre haters - Reprodução/Instagram - Reprodução/Instagram
Imagem: Reprodução/Instagram