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

Vasco

Elenco do Vasco debate sobre racismo com professor de História no CT

Professor de História José Nilton Júnior comanda roda de discussão sobre racismo no futebol com jogadores do Vasco - Rafael Ribeiro / Vasco
Professor de História José Nilton Júnior comanda roda de discussão sobre racismo no futebol com jogadores do Vasco Imagem: Rafael Ribeiro / Vasco

Do UOL, no Rio de Janeiro

05/05/2021 22h19

Os jogadores do Vasco tiveram uma programação especial hoje (5) antes do treino no CT do Almirante. Eles receberam a presença do professor de História vascaíno José Nilton Júnior, que conduziu uma roda de discussão sobre racismo no futebol. O educador leciona em Niterói e, ano ado, sofreu discriminação racial durante uma aula virtual.

A atividade fez parte do projeto de "Formação Integral do Atleta-Cidadão", idealizado pela vice-presidência de Relações Públicas em parceria com o Departamento de Futebol.

"Foi muito significativo para mim, como professor, vascaíno e negro, que vivencia atitudes racistas com uma certa frequência, vir no CT e contar um pouco da minha experiência. Feliz também por ver que o Vasco, com sua história e sua tradição, segue engajado nessa luta contra o racismo. ei aos atletas que é muito importante eles conhecerem essa história, aderirem à essa luta, pois só dessa forma conseguiremos atingir mais pessoas, combater o problema e transformar o mundo num lugar melhor para viver, sem discriminação", afirmou o professor Júnior, que participou do crownfunding ("vaquinha online") que resultou na construção do CT.

Após o bate-papo, os jogadores presentearam o professor com uma camisa recém-lançada pelo clube alusiva à história vascaína de combate ao racimo. Ela estava personalizada com o nome do educador e o número 8, em referência ao ídolo do docente, Juninho Pernambucano. Além disso, ele ganhou um quadro da Resposta Histórica, documento assinado em 07 de abril de 1924, considerado até hoje um marco na luta contra a desigualdade racial no país.

Professor Júnior posa para foto com elenco do Vasco: ganhou camisa e quadro da "Resposta Histórica" - Rafael Ribeiro / Vasco - Rafael Ribeiro / Vasco
Professor Júnior posa para foto com elenco do Vasco: ganhou camisa e quadro da "Resposta Histórica"
Imagem: Rafael Ribeiro / Vasco

Mês ado, o Vasco fez uma criativa ação que presenteou personalidades pretas — não necessariamente vascaínas — com um kit que explicava toda a luta do clube contra o preconceito e brindes alusivos ao tema. Nomes como Paulinho da Viola, Nelson Sargento, Tereza Cristina e Iza foram alguns dos agraciados.

Vasco