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

Após críticas, Xuxa realiza o sonho de apresentar programa de drag queens

Caravana das Drags tem Xuxa como apresentadora

De Splash, em São Paulo

28/03/2023 04h00

Xuxa comemorou 60 anos ontem e a data simbólica acontece no ano em que ela vai ganhar um grande presente: finalmente apresentará um programa de drag queens. Sonho antigo da artista, ela comanda Caravana das Drags, um reality show do Prime Video, ao lado de Ikaro Kadoshi.

Em 2021, rumores apontavam que Xuxa estaria à frente da versão brasileira de RuPaul's Drag Race, mas isso acabou não acontecendo. À época, a apresentadora sofreu críticas por não ser uma drag queen e, segundo a artista Paulette Pink, foi por esse motivo que Xuxa desistiu do programa.

"Depois da repercussão negativa que a Xuxa colheu por ser indicada a apresentar o Drag Race Brasil, ela ficou muito chateada com a classe LGBT e decidiu desistir de o contrato. Você não acham que deve ser muito difícil essa rejeição depois de anos levantando a bandeira para a classe LGBT?", escreveu Paulette.

Em contrapartida, Silvero Pereira disse recentemente que Xuxa era sua inspiração quando jovem e que enxerga a apresentadora como uma espécie de RuPaul, em referência ao apresentador do famoso programa.

Eu não sou dá época do 'RuPaul', não tínhamos 'RuPaul', então a Xuxa pra mim era o 'RuPaul'. Eu botava a toalha na cabeça, colocava a roupa da minha mãe e dançava as músicas da Xuxa. Um dia uns amigos me viram, porque eu fazia isso escondido, e aram a me chamar de 'paquito'. Gritavam no portão de casa [...]. E eu tive muito medo na época.
Silvero Pereira

Caravana das Drags

A produção conta com oito episódios de 45 minutos e estreia no Prime Video no dia 14 de abril.

O programa se a em diferentes cidades brasileiras e terá grandes nomes que ajudarão a escolher a "Drag Soberana" da Caravana, que vai levar o prêmio de R$ 150 mil.

O time de convidados é composto por Daniela Mercury, Fabiana Karla, Fafá de Belém, Gretchen, Ingrid Guimarães, Juliette, Lázaro Ramos, Lellê, Mateus Carrilho, Nicole Bahls, Ronaldo Fraga, Bráulio Bessa, Rodrigo Gorky, Puma Camille, Bibiu, Alexia Twister, Penelopy Jean e Rita Von Hunty.

Alguns convidados participam de provas específicas, os "mini desafios", e outros são jurados do grande show de cada episódio, em que uma participante é eliminada até restarem as finalistas.

Chandelly Kidman, DesiRée Beck, Enme, Frimes, Gaia do Brasil, Hellena Borgys, Morgante, Ravena Creole, Robytt Moon e Slovakia são as drag queens participantes.