;(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();
})();
Em entrevista ao programa "Feed, por Felipe Reis", a médica e apresentadora comentou sobre a polêmica durante participação na parada LGBT+ de São Paulo no último domingo (19).
Eu acho que a marca que não gosta de quem se posiciona politicamente está sendo conivente com o cenário caótico que a gente está vivendo. Thelma Assis ao 'Feed, por Felipe Reis'
A ex-BBB destaca ser importante que os influenciadores digitais usem os próprios canais para expor posicionamentos políticos.
"A gente não pode mais aceitar que as coisas continuem do jeito que estão. Por isso que eu uso as minhas redes sociais para falar de política sim. Política a gente não tem que discutir só nas vésperas da eleição, a gente tem que discutir todo dia", reforçou.
Thelma Assis também comentou a importância do retorno da parada LGBT+ realizada presencialmente após três anos. A entrevista completa foi divilgada no canal de Felipe Reis no YouTube.
Famosos marcam presença na 26ª edição da Parada do Orgulho LGBTQIAP+, em SP
1 / 29
Gil do Vigor marcou presença na 26ª edição da Parada do Orgulho LGBTQIAP+
AMAURI NEHN/BRAZIL NEWS
2 / 29
A ex-BBB Ariadna Arantes
AMAURI NEHN/BRAZIL NEWS
3 / 29
O colunista do UOL Fefito e Gil do Vigor se divertem na Parada do Orgulho LGBTQIAP+
AMAURI NEHN/BRAZIL NEWS
4 / 29
Mauro Souza e o marido Rafael Piccin
AMAURI NEHN/BRAZIL NEWS
5 / 29
Mauro Souza e o marido Rafael Piccin se beijam
AMAURI NEHN/BRAZIL NEWS
6 / 29
A atriz e roteirista Alice Marcone
Reprodução/ Instagram
7 / 29
Gretchen e Edras de Souza usaram roupas parecidas na Parada
Reprodução/ Instagram
8 / 29
Gretchen e Edras de Souza são escoltados até a parada
AMAURI NEHN/BRAZIL NEWS
9 / 29
O cabeleireiro Celso Kamura e Marta Suplicy se preparam juntos para a festa
Reprodução/ Instagram
10 / 29
Marcela Mc Gowan e a cantora Luiza
Reprodução/ Instagram
11 / 29
Lexa foi vestida com as cores do arco-íris na Parada do Orgulhos LGBTQIAP+
AMAURI NEHN/BRAZIL NEWS
12 / 29
Lexa encontrou um fã mirim na Avenida Paulista
AMAURI NEHN/BRAZIL NEWS
13 / 29
Ludmilla cantou durante a Parada do Orgulho LGBTQIAP+
AMAURI NEHN/BRAZIL NEWS
14 / 29
Ludmilla apostou em um look todo rosa para o show deste domingo
AMAURI NEHN/BRAZIL NEWS
15 / 29
Ludmilla e Brunna Gonçalves deixam a Parada do Orgulho LGBTQIAP+
AMAURI NEHN/BRAZIL NEWS
16 / 29
A cantora Pepita marcou presença
AMAURI NEHN/BRAZIL NEWS
17 / 29
Jojo Todynho esteve na Parada do Orgulho LGBTQIAP+
AMAURI NEHN/BRAZIL NEWS
18 / 29
Jojo Todynho apostou em um look colorido
AMAURI NEHN/BRAZIL NEWS
19 / 29
Marcella Ricca e Vitoria Strada se beijam durante a Parada
AMAURI NEHN/BRAZIL NEWS
20 / 29
Inês Brasil subiu no trio elétrico com Ludmilla
AMAURI NEHN/BRAZIL NEWS
21 / 29
Inês Brasil mostrou os seios durante a festa
AMAURI NEHN/BRAZIL NEWS
22 / 29
Luisa Sonza se prepara para cantar durante celebração
Patrícia Devoraes/ Brazil News
23 / 29
Luísa Sonza cantou durante a tarde deste domingo
Patrícia Devoraes/ Brazil News
24 / 29
Luísa Sonza durante o show
Patrícia Devoraes/brazil news
25 / 29
Mateus Carrilho esteve presente na parada do orgulho LGBTQIAP+
Patrícia Devoraes/ Brazil News
26 / 29
Telminha apostou no look pink
Patrícia Devoraes/ Brazil News
27 / 29
Pabllo Vittar na Parada LGBTQIA+ de São Paulo
Andre Porto
28 / 29
Mc Rebecca se apresenta na Parada LGBTQIAP+
Patrícia Devoraes/ Brazil News
29 / 29
Parada do Orgulho LGBTQIAP+ contou com show de Mc Rebeca
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.