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

Ludmilla rebate críticas após levar Grammy: 'Parem de fogo no c*'

Ludmilla rebateu críticas dos haters - Chico Cerchiaro / Divulgação
Ludmilla rebateu críticas dos haters Imagem: Chico Cerchiaro / Divulgação

Colaboração para Splash, em Maceió

22/11/2022 16h58

A cantora Ludmilla rebateu as críticas após discursar em show para celebrar o Grammy Latino recebido pelo álbum "Numanice #2", o primeiro de sua carreira.

Em show realizado no Rio de Janeiro no domingo (20), Ludmilla bebeu vinho no palco, ganhou uma homenagem da equipe e da esposa, Brunna Gonçalves, pela conquista na premiação mais importante da música.

Na ocasião, a cantora mandou um recado para os críticos de plantão e afirmou que "já foi a época que haters falavam e ganhavam likes". Ainda, ela convidou os fãs a ouvirem aqueles artistas que eles gostam, aplaudir os amigos e correr atrás dos sonhos porque a vida é curta.

Entretanto, nas redes sociais algumas pessoas associaram o discurso como uma suposta indireta à Anitta. Hoje, em postagens no Twitter, Ludmilla, sem mencionar Anitta, pontuou que a "internet é muito louca" porque "você fala A e entendem B".

Segundo a artista, seu discurso no palco se deu em um contexto no qual ela estava emocionada pela vitória no Grammy Latino, mas também por lembrar da morte do rapper Kirshnik Khari Ball, mais conhecido comoTakeoff, um dos integrantes do trio Migos, morto aos 28 anos em 1º de novembro, após ser baleado na cabeça em Houston, no Texas (EUA).

Ludmilla destacou que enquanto se deslocava para a apresentação, recordou de uma entrevista dada por Takeoff, na qual o rapper afirmou ser preferível receber flores enquanto está vivo.

"Geralmente as pessoas esperam as outras irem embora para dar valor e quando eu ganhei o Grammy vi várias pessoas brigando na internet, tipo, sem sentido nenhum. Daí eu ia escrever que a vida é muito breve, para a gente aproveitar os nossos artistas, aproveitar a vida, correr atrás dos nossos sonhos, parar de deixar as coisas para amanhã, mas não deu tempo, tive que subir no palco", publicou.

"Daí eles [membros da equipe] entraram e eu acabei ficando lá mesmo. Aí pegaram o vídeo, jogaram na internet, e estão me marcando e criando mil teorias. Resumindo: parem de fogo no c* na internet, sejam positivos, o seu futuro está sendo criado pelo o que você está fazendo agora", completou.