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

Richarlyson é primeiro atleta da Série A e seleção a se assumir bissexual

Richarlyson defende a seleção brasileira em amistoso contra a Irlanda, em 2008 - Ian Walton/Getty Images
Richarlyson defende a seleção brasileira em amistoso contra a Irlanda, em 2008 Imagem: Ian Walton/Getty Images

Do UOL, em São Paulo (SP)

24/06/2022 11h18

Richarlyson assumiu ser bissexual hoje. Ele é o primeiro atleta com agem pela Série A do Brasileirão e pela seleção brasileira a revelar ser homossexual ou bissexual. A declaração foi dada ao podcast 'Nos Armários dos Vestiários', do Grupo Globo.

"A vida inteira me perguntaram se sou gay. Eu já me relacionei com homem e já me relacionei com mulher também", disse. "Só que aí eu falo hoje aqui e daqui a pouco estará estampada a notícia: 'Richarlyson é bissexual'. E o meme já vem pronto. Dirão: 'Nossa, mas jura? Eu nem imaginava'. Cara, eu sou normal, eu tenho vontades e desejos. Já namorei homem, já namorei mulher, mas e aí? Vai fazer o quê? Nada", completou.

O ex-jogador, hoje comentarista do Grupo Globo, disse saber que existem e existiram outros atletas bissexuais e homossexuais no futebol. "Eu seria hipócrita de falar que não existem. Existem, sim. E ele (jogador) falar que é, a porta vai fechar absurdamente. Vai fechar mesmo, porque ainda existe esse lado, que eu acho tão pobre nos clubes, de estarem nas mãos das torcidas organizadas, que são quase sempre quem comandam nessa questão da homofobia", afirmou.

Richarlyson sentiu na pele a questão que citou sobre a possibilidade de 'portas fecharem'. Mesmo sendo destaque em campo, ele sofreu com as perseguições, ainda antes de ser assumir sua orientação sexual. Por um período, uma parte da torcida do São Paulo, onde conquistou Mundial e um tricampeonato brasileiro, não cantou seu nome antes dos jogos.

"Todo dia eu tinha que mostrar algo diferente, e isso sempre falei. Um erro meu era peso cinco. (As pessoas) me atacavam mesmo, parecia uma matilha de lobos. E eu sabia, nunca fui craque, nunca fui tecnicamente incrível, mas era inteligente de saber o que eu poderia fazer para sempre estar à frente dos demais", disse.

Isso fez com que o ex-atleta precisasse se redobrar para que o foco fosse o que ele fizesse dentro de campo, e não fora dele. "Eu voltava uma semana antes das férias, porque eu corria na ladeira por uma vaga no time, enquanto os outros estavam no plano. Eu chegava voando na pré-temporada. Na hora que os caras assustarem, eu já fiz cinco bons jogos, e aí não teria motivo para me tirar do time", completou.

O impacto de assumir a orientação sexual em um ambiente ainda bastante homofóbico, como o futebol, faz com que os atletas tenham medo não apenas das possíveis ofensas e ameaças, mas também de que prejudiquem a carreira.

"Com certeza minha carreira poderia ter sido muito melhor em termos midiáticos por aquilo que eu construí dentro do futebol se não tivesse essa pauta (sexualidade). Isso é visível, todo mundo sabe disso", disse Richarlyson.