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

Histórico

Fefito

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

'BBB 21': Precisamos falar sobre Rodolffo e homofobia

Rodolffo criticou o modo como Gilberto se expressa - Reprodução / Internet
Rodolffo criticou o modo como Gilberto se expressa Imagem: Reprodução / Internet

Colunista do UOL

09/02/2021 11h38

Em uma temporada com tanta movimentação e intriga, a edição do "BBB" parece privilegiar determinados vilões em seus episódios e deixar de lado outros temas sensíveis. Um deles diz respeito ao comportamento de Rodolffo na casa mais vigiada do país. Nos últimos dias, o sertanejo tem feito críticas ao comportamento de Gilberto e todas, estranhamente, dizem respeito à maneira como ela se expressa. "Estou com raiva desses gritos", afirmou o cantor, que também deixou claro que "a voz dele está incomodando". Nenhum outro participantes foi criticado pelo modo como se expressa pelo ex de Rafa Kalimann. Apenas os "gritinhos" do pernambucano, homossexual assumido, incomodam.

Antes, Rodolffo já havia manifestado seu incômodo com Gilberto: "Não consigo ficar perto dele, rir das piadinhas, desses gritinhos dele o tempo inteiro. Eu bloqueio cara, lá na rua eu sou assim". Ao ver o beijo do colega em Lucas, afirmou que tudo não se tratava de armação e fez questão de ressaltar de que "sabe do que gosta", deixando clara a sua heterossexualidade sem que ninguém perguntasse sobre.

Há pouco mais de uma semana, o sertanejo viu surgir nas redes sociais um vídeo no qual diz que "uma das criaturas que mais me fazem dar risada, é a criatura gay". Além de lido teleprompter, sem espontaneidade nenhuma, o texto trata homossexuais como alívio cômico. Curioso que ele não ria das brincadeiras de Gilberto então.

Na madrugada desta terça-feira (9), Gilberto, em conversa com Arcrebiano, pareceu dar mostras de entender que algo não está certo. "Não entendo por que Rodolffo tem tanta raiva de mim", afirmou o doutorando em Economia. "Toda vez que eu tô num lugar ele sai, nunca entendi por que, até hoje."

A resposta talvez seja bem mais complexa - e óbvia - do que ele pensa. Curiosamente, nenhum destes momentos foi mostrado pela edição do programa da Globo. Talvez por ser encarado como a "parte divertida" do jogo em sua parceria com Caio, Rodolffo venha sendo poupado. Ver a homofobia velada - por vezes descarada - direcionada a Gilberto, no entanto, não é nada divertido. Precisamos falar sobre o assunto.