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

Lolla: Jão incentiva adolescentes a tirarem título e votar contra Bolsonaro

Jão canta no segundo dia de Lolla - Reprodução/Multishow
Jão canta no segundo dia de Lolla Imagem: Reprodução/Multishow

Colaboração para Splash

26/03/2022 16h27Atualizada em 26/03/2022 16h46

O cantor Jão, 27 anos, foi mais um dos famosos a entrar na campanha para que adolescentes tirem o título de eleitor e participem da votação presidencial de 2022. Anitta havia feito o mesmo dias atrás.

"Esse ano nós batemos recordes de ausência de titulo de eleitor. Por favor, não adianta estar aqui no show e não votar. Vai votar, p*rra", declarou Jão no meio do show, se referindo aos adolescentes de 16 a 18 anos que ainda não tiraram o título.

Minutos antes, a plateia ecoou um "Fora, Bolsonaro" e o cantor se empolgou.

Esse é o maior hit desse festival", brincou Jão.

No começo do show, o cantor se emocionou ao relembrar sua trajetória.

"Eu nasci no interior de São Paulo, eu só queria vir pro Lolla, não queria cantar. Eu não vinha porque eu não tinha grana. Em 2017, eu vim pela primeira vez, eu vi o The Weeknd, dali de atrás. Ainda tentei ver daqui da frente, eu disse que era da 'Malhação', mas não deu certo. Ótimo trabalho o segurança fez, inclusive. Naquele dia nasceu o sonho de cantar no Lolla. Então muito obrigado por serem a imagem que eu vou me lembrar", declarou.

O show foi marcado também por um "polvo gigante" no palco.

lolla - Reprodução/Multishow - Reprodução/Multishow
Polvo gigante toma palco de Jão no Lolla
Imagem: Reprodução/Multishow

Jão também se destacou ao usar a bandeira LGBTQIA+ durante a performance de "Meninos e Meninas".

jão bandeira - Reprodução/Multishow - Reprodução/Multishow
Jão canta "Meninos e Meninas" com bandeira LGBTQIA+
Imagem: Reprodução/Multishow

Ontem, shows de artistas como Marina e Detonautas também foram marcados por gritos contra Bolsonaro. Hoje, Silva já havia falado contra o presidente.

Fotos do 2º dia do Lollapalooza Brasil 2022