;(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();
})();
Virada Cultural: com medo da violência do Centro, Zona Oeste vira opção
Virada Cultural: Graziele, Angélica e Gabriel curtem primeiro dia de evento Imagem: Bruna Calazans/UOL
Bruna Calazans
Colaboração para Splash, em São Paulo
27/05/2023 19h07
Buscando por segurança, um grupo de amigos curtiu a Virada Cultural na Zona Oeste de São Paulo, na Arena Butantã. O espaço localizado próximo ao metrô Vila Sônia recebeu o circuito de shows gratuitos neste fim de semana.
"A gente ficou com medo de ir para o Anhangabaú", disse Angélica Fiorini, 33. "Aqui está sendo bem mais organizado. É a minha primeira vez na Virada, e estou achando muito bom", complementou Gabriel Alves, 26.
Grazielle Reis, 25, também estava com a dupla e essa é sua estreia na Virada. "Um evento como esse é ótimo para quem não tem condições de pagar para ver alguns artistas", pontuou.
Eles estavam curtindo o evento enquanto estavam deitados em almofadas disponibilizadas pela prefeitura na ciclofaixa da Avenida Eliseu de Almeida. Para Angélica, aquele espaço é inclusivo.
"Eu achei importante principalmente para pessoas neurodivergentes que, às vezes, querem participar, mas não querem ficar no meio da muvuca", opinou.
Virada Cultural: Prefeitura disponibilizadas almofadas pela ciclofaixa da Avenida Eliseu de Almeida.
Imagem: Bruna Calazans/UOL
Virada Cultural 2023
O maior evento cultural da região acontece nos dias 27 e 28 de maio.
A metrópole é palco de uma intensa programação, com mais de 500 atrações gratuitas.
O evento é distribuído em diversos palcos espalhados por todas as regiões da cidade.
Virada Cultural 2023: acompanhe o público e o clima do evento anual que acontece em São Paulo
1 / 32
Virada Cultural: Família leva filha para conhecer Alceu Valença
Alexandre de Melo/UOL
2 / 32
Ambulante Maysa Araujo na Virada Cultural
Alexandre Melo/UOL
3 / 32
Virada Cultural: Público se esconde de chuva embaixo de placa
Bruna Calazans/UOL
4 / 32
Grupo Ao Cubo abre o palco principal da Virada Cultural em Heliópolis
Beatriz Mazzei/UOL
5 / 32
Virada Cultural: Cecília e Iran são avós do percussionista João.
Alexandre de Melo/UOL
6 / 32
Supla se apresenta na Virada Cultural
Bruna Calazans/UOL
7 / 32
Virada Cultural: Emerson Junior e o filho curtem evento
Alexandre Melo/UOL
8 / 32
Paola e Natália no show de Anavitória, na Virada Cultural
Bruna Calazans/UOL
9 / 32
Kennedy Silva
O atendente de lanchonete Kennedy Silva, 27, comemorou a chegada da Virada Cultural à região de Heliópolis.
André Porto/UOL
10 / 32
Mikaely e Gabriel
Mikaely ao lado do filho, Gabriel.
André Porto/UOL
11 / 32
Público no show do MC Livinho
Virada Cultural: Público comparece para show em Heliópolis
Andre Porto / UOL
12 / 32
Público prestigia evento
Virada Cultural: Luis José e amigos em show do BaianaSystem
Alexandre de Melo/UOL
13 / 32
Com 6 meses, bebê curte Virada
É a sua segunda participação, a primeira foi na ainda na barriga da mãe.
Bruna Calazans/UOL
14 / 32
Show de Gloria Groove
Público lota a grade para curtir Gloria Groove
Alexandre de Melo / UOL
15 / 32
Renato Pacheco
Empreendedor Renato Pacheco, 35, prevê o aumento do faturamento de seu bar com o evento.
André Porto/UOL
16 / 32
Giovana e Maria
Giovana Carolina e Maria Oliveira, ao centro, curtem o evento em São Paulo.
André Porto/UOL
17 / 32
Mikaely e Rayra
Mikaely e Rayra também aproveitam a Virada Cultural em Heliópolis.
André Porto/UOL
18 / 32
Andre Marcos da Costa
Andre Marcos da Costa, 18, curte os shows da Virada Cultural.
André Porto/UOL
19 / 32
Heliópolis recebe shows
Heliópolis recebe, pela primeira vez, Virada Cultural.
Andre Porto / UOL
20 / 32
Luis Fernando e Roberta
Luis Fernando, 25, e Roberta, 32, celebram espaço de pertencimento proporcionado pelo evento.
Alexandre de Melo/UOL
21 / 32
Adriana Faria e Alice
Autônoma Adriana Faria, 45, e a filha Alice, 8, curtem o show de Gloria Groove no Vale do Anhangabaú.
Alexandre de Melo/UOL
22 / 32
Amigos curtem 1º dia
Graziele, Angélica e Gabriel curtem primeiro dia de evento
Bruna Calazans/UOL
23 / 32
Público no show do MC Livinho
Virada Cultural: Público comparece para show em Heliópolis
André Porto / UOL
24 / 32
Público prestigia evento
Virada Cultural: Mário e Tatiane aprovam descentralização de evento
Bruna Calazans/UOL
25 / 32
Hora do descanço
Virada Cultural: Prefeitura disponibilizadas almofadas pela ciclofaixa da Avenida Eliseu de Almeida.
Bruna Calazans/UOL
26 / 32
Público curte shows
Virada Cultural: Maiara Santos e Lucas Celestino curtiram o show do grupo Attoxxa
Bruna Calazans/UOL
27 / 32
Multidão no Raça Negra
Virada Cultural: Público prestigia show do Raça Negra
André Porto/UOL
28 / 32
Amigos curtem show
Lucas Alic, Wagner Alexandre e Robson Oliveira curtem show
Alexandre de Melo/UOL
29 / 32
Hora do descanso
Prefeitura disponibilizadas almofadas pela ciclofaixa
Alexandre de Melo/UOL
30 / 32
Público descansa na madruga
Maria Luisa e Mariane Batista descansam na madrugada da Virada Cultural
Alexandre de Melo/UOL
31 / 32
Segurança no Anhangabaú
Público é revistado antes do o ao Palco Anhangabaú
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.