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

Vai ter Anitta? Da Disney ao rock, Miley Cyrus celebra carreira no Lolla

Miley Cyrus posta foto com Anitta em especial de ano novo - Reprodução/Instagram
Miley Cyrus posta foto com Anitta em especial de ano novo Imagem: Reprodução/Instagram

Daniel Palomares

De Splash, em São Paulo

26/03/2022 04h00

Miley Cyrus ainda não completou 30 anos, mas já viveu pelo menos metade desse tempo como uma estrela internacional. Depois de ar por Argentina, Chile, Colômbia e Paraguai, a cantora desembarca no Brasil como a principal atração do segundo dia do Lollapalooza e promete surpresas.

Nos ensaios do show de Bogotá, no início da semana, Miley estava ensaiando a música "Boys Don't Cry", de ninguém menos do que Anitta. Se na apresentação colombiana a música não apareceu, será que podemos esperar um momento especial em São Paulo?

Do Mickey ao rock

Miley despontou para o público com somente 12 anos ao estrelar o fenômeno do Disney Channel "Hannah Montana". De lá para cá, foram sete álbuns de estúdio, cada um mirando em um estilo particular, até que ela chegasse ao palco do Lolla.

A cantora já apostou no pop, no hip hop e no country; já falou sobre amor, casamento, drogas e sexo nas músicas, mas acabou conquistando de vez o público ao se jogar no rock de seu mais recente álbum, "Plastic Hearts", de 2020.

Em cada parada de seus shows pela América do Sul, Miley foi recebida por centenas de fãs no aeroporto e na porta do hotel. Desde que se jogou no estilo roqueira, a cantora já colaborou com lendas do gênero como Metallica, Joan Jett e Stevie Nicks. Feitos impressionantes para quem surgiu em uma série infantil tão antiga.

tyhytty - Reprodução / Instagram - Reprodução / Instagram
Miley Cyrus comemora 15 anos de 'Hannah Montana'
Imagem: Reprodução / Instagram

Vai ter Anitta?

No início da pandemia, Anitta participou de um programa de entrevistas que Miley apresentava em seu perfil do Instagram. As duas seguiram se aproximando até que, na virada do ano, Anitta foi convidada para se apresentar no evento especial de Réveillon apresentado por Miley, direto de Miami.

Enquanto se prepara para subir ao palco do Coachella, nos EUA, no próximo mês, Anitta está pegando pesado nos ensaios para o seu show ainda no Brasil. Se Anitta e Miley estarão por aqui, é demais esperar pelo encontro das duas no palco?

yuuyy - Reprodução/Instagram - Reprodução/Instagram
A cantora Miley Cyrus, destaque do Lolla 2022
Imagem: Reprodução/Instagram

Misturando músicas de todo seu repertório no show, desde a fase Disney até a faceta rockstar, Miley pode ter guardado um gostinho especial para o Brasil com "Boys Don't Cry", mas só mesmo conferindo o show dela no Lolla para saber.