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

Virada Cultural de SP: veja onde serão os principais shows e o que assistir

Gloria Groove, a Lady Leste, se apresenta na zona leste de São Paulo - Iwi Onodera/ Brazil News
Gloria Groove, a Lady Leste, se apresenta na zona leste de São Paulo Imagem: Iwi Onodera/ Brazil News

De Splash, em São Paulo

27/05/2022 13h00

Depois de um hiato de dois anos, a Virada Cultural de São Paulo volta a acontecer neste fim de semana. Os shows gratuitos começam amanhã às 17h e vão até as 17h do domingo (29).

Entre os destaques Ludmilla, Luísa Sonza, Péricles, Jorge Aragão, Kevinho, Glória Groove, Karol Conká, Pitty, Vitão, Pocah, BK, Diogo Nogueira, Barões da Pisadinha, Djonga, entre outros.

A abertura oficial da Virada Cultural de SP acontece às 17h de amanhã com apresentação do maestro João Martins com a Vai-Vai no Palco Freguesia do Ó, na zona norte da cidade, que é considerado o principal do evento.

Uma das mudanças mais significativas para o ano de 2022 é a descentralização dos palcos, já que antes as principais atrações ficavam concentradas na região central da cidade. Neste ano grandes nomes da música tocam em todas as regiões, da zona norte a zona sul.

Serão mais de 300 apresentações artísticas entre música, artes cênicas, dança e manifestações populares. A prefeitura espera um público de 2 milhões de pessoas circulantes. A programação completa pode ser consultada no site oficial da Virada Cultural de SP.

Veja as principais atrações por região da cidade:

Centro

Palco Viaduto do Chá

28/05

18h | Vitor Kley (60 min)

20h30 | Margareth Menezes (90 min)

23h | Kevinho (90 min)

29/05

15h | Luísa Sonza (90 min)

17h30 | Planet Hemp (60 min)

Zona Sul

Palco Campo Limpo (Praça do Campo Limpo. Rua Dr. Joviano Pacheco de Aguirre, 30)

28/05

17h | Thaeme e Thiago (60 min)

19h | Vitão (60 min)

21h | Xande de Pilares (60 min)

Palco M'Boi Mirim (Av. Luiz Gushiken, s/n, altura da Rua Humberto de Almeida e Rua José Mármol)

28/05

17h | Mumuzinho (60 min)

19h | Yasmin Santos (60 min)

21h | Rashid (60 min)

Zona Leste

Palco Itaquera (Praça Brasil. Av. Nagib Farah Maluf, s/n, Conjunto Habitacional José Bonifácio)

28/05

17h | Lauana Prado (60 min)

19h | Rael (60 min)

21h | Glória Groove (60 min)

29/05

13h | Pocah (60 min)

15h | Ferrugem (60 min)

17h | Djonga (60 min)

Palco São Miguel Paulista (Av. Deputado Dr. José Aristodemo Pinotti, s/n, entre a Av. Nordestina e Rua Moacir Dantas Itapicuru)

28/05

17h | Mato Seco (60 min)

21h | Tribo de Jah (60 min)

29/05

15h | MC Hariel (60 min)

17h | Barões da Pisadinha (60 min)

Centro Cultural Cidade Tiradentes (Rua Inácio Monteiro, 6900 - Conjunto Habitacional Sítio Conceição)

28/05

17h | Mv Bill convida Kmila CDD (60 min)

19h | Karol Conká (60 min)

21h | Black Alien (60 min)

Zona Norte

Palco Parada Inglesa (Av. Luiz Dumont Villares, altura do nº 1400)

28/05

19h | Ana Cañas canta Belchior

21h | Criolo (60 min)

29/05

13h | Kevin O Chris (60 min)

17h | Filipe Ret (60 min)

Palco Luiz Dumont Villares (Av. Luiz Dumont Villares, altura do nº 1400)

28/05

16h | Jorge Aragão (60 min)

20h às 21h | Sidney Magal (60 min)

Palco Freguesia do Ó (Av. Miguel Conejo, s/n - Altura da Praça Dolmann)

28/05

17h | Maestro João Carlos Martins e Vai-Vai (60 min)

19h | Péricles (60 min)

21h | Mariana Aydar (60 min)

29/05

13h | Rincon Sapiência (60 min)

15h | Diogo Nogueira (60 min)

17h | Ludmilla (60 min)

Zona Oeste

Palco Butantã (Av. Eliseu de Almeida, altura do número 4156, entre Rua Carlos Lisdegno Carlucci e agem da Praça Verde na Av. Pirajussara)

28/05

17h | Chico César e Geraldo Azevedo (60 min)

19h | Arnaldo Antunes (60 min)

29/05

13h | Fresno (60 min)

15h | Céu (60 min))

17h | Pitty (60 min)