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

Rodolfo Rodrigues

ANÁLISE

Texto baseado no relato de acontecimentos, mas contextualizado a partir do conhecimento do jornalista sobre o tema; pode incluir interpretações do jornalista sobre os fatos.

Apenas Corinthians, Flu e Santos utilizaram a camisa 24 no Brasileirão

O volante Cantillo com a camisa 24 do Corinthians no jogo contra a Chapecoense - Rodrigo Coca/Agência Corinthians
O volante Cantillo com a camisa 24 do Corinthians no jogo contra a Chapecoense Imagem: Rodrigo Coca/Agência Corinthians

Colunista do UOL

12/07/2021 13h48

No final de junho, o grupo LGBTQIA+ entrou na Justiça contra CBF, pedindo explicações pela falta da camisa 24 na seleção brasileira na disputa da Copa América. Como todos sabemos, número está associado, no jogo do bicho, ao veado, também maneira antiga de se referir pejorativamente aos homens gays. Mas não assume, claro: a entidade alegou que a numeração utilizada pelos atletas tinha relação com questões desportivas apenas.

Hoje, pouca gente se importa com isso: o vocativo é usado inclusive de maneira carinhosa desde dos grupos LGBT. Mas tem quem ainda use como xingamento. E o futebol ainda acha que essa associação infantil (do número e do animal) pode ser prejudicial para jogadores e torcida.

Mas o número 24 ainda é um tabu em muitos clubes do futebol brasileiro, que desde o início do século 21 usam numerações que vão do 1 ao 99. No atual Brasileirão, apenas 3 dos 529 jogadores que entraram em campo vestiram a camisa 24: o volante colombiano Cantillo, do Corinthians (vale lembrar que fora do Brasil ninguém liga pra isso), o volante Kevin Malthus, do Santos, e o zagueiro Nino, do Fluminense.

Nesse Brasileirão 2021, a CBF tentou emplacar a numeração fixa para todos os clubes. A ideia da entidade era que uma empresa só fornecesse os números para gerar receita. Algo como é feito na Premier League. Mas a ideia não agradou. E ainda assim, três clubes seguem sem numeração fixa: América-MG, Atlético-GO e Cuiabá.

Entre os outros 16 clubes com numeração fixa, além de Corinthians e Santos, outros quatro clubes têm jogadores com a camisa 24, porém que ainda não jogaram nesse Brasileirão. Maioria deles sendo terceiros ou quartos goleiros no elenco, como Artur Gaze (São Paulo), Anthoni (Internacional) e Leandro (Bahia). No Red Bull Bragantino, o venezuelano Cesar Haydar, zagueiro, também leva a 24 nas costas. Mas é outro gringo, como Cantillo.

Nunca é tarde para que clubes e jogadores revejam esses preconceitos no futebol. Muitos desses times ou atletas, engajados na causa a favor das minorias, poderiam tomar à frente e acabar com essa bobagem.

Você pode me encontrar também no twitter (@rodolfo1975) ou no Instagram (futebol_em_numeros)