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

Real presta apoio a Vini Jr. e promete medidas legais contra racistas

Colaboração para o UOL, em Santos (SP)

16/09/2022 17h08

O Real Madrid prestou solidariedade a Vinicius Junior depois de o brasileiro ter sido alvo de comentários racistas feitos em um programa de televisão espanhol. O clube merengue divulgou uma nota na qual classifica os comentários como 'lamentáveis' e 'infelizes' e promete tomar medidas legais contra qualquer um que utilize expressões racistas contra seus jogadores.

"O Real Madrid repudia todo o tipo de expressões e comportamentos racistas e xenófobos no âmbito do futebol, do esporte e da vida em geral, como os lamentáveis e infelizes comentários feitos nas últimas horas contra o nosso jogador Vinicius Junior", diz trecho.

"O clube instruiu seus serviços jurídicos a tomar medidas legais contra qualquer pessoa que use expressões racistas contra nossos jogadores", finaliza a nota.

Entenda o caso

Ontem (15), o presidente da Associação Espanhola de Empresários de Jogadores, Pedro Bravo, usou um termo racista para criticar o brasileiro durante o programa 'El Chiringuito'. O agente disse que o atacante deveria "parar de fazer macaquice" e ir ao "sambódromo do Brasil" caso quisesse "dançar".

"Você tem que respeitar o rival. Se quer dançar, que vá ao sambódromo no Brasil. Aqui o que você tem que fazer é respeitar os companheiros de profissão e deixar de fazer macaquice", comentou Bravo, que foi prontamente criticado por outro participante do programa.

A discussão foi iniciada por conta das comemorações de Vinicius Junior, que costuma fazer os de dança após seus gols. Esses gestos, inclusive, fizeram com que o capitão do Atlético de Madri, Koke, falasse que "haveria" confusão se o brasileiro dançasse após marcar no clássico deste domingo (18), pelo Campeonato Espanhol.

Depois da repercussão da fala, Bravo foi ao Twitter pedir desculpas. "Quero esclarecer que a expressão 'fazer macaquice' que utilizei mal ao qualificar a dança do Vinicius na comemoração dos gols foi de maneira metafórica ('fazer idiotices'). Como minha intenção não foi de ofender ninguém, peço sinceramente desculpas. Sinto muito!", alegou.

Por conta do episódio, Vinicius Junior recebeu apoio público de atletas e ex-companheiros da seleção, como Neymar, Raphinha e Thiago Silva. A hashtag 'BailaViniJr' foi lançada e ciralizou. O Rei do Futebol, Pelé, e a CBF também prestaram solidariedade e reforçaram o combate ao racismo.

Leia a nota completa:

O Real Madrid C.F. repudia todo o tipo de expressões e comportamentos racistas e xenófobos no âmbito do futebol, do esporte e da vida em geral, como os infelizes e infelizes comentários feitos nas últimas horas contra o nosso jogador Vinicius Junior.

O Real Madrid quer mostrar todo o seu amor e apoio a Vinicius Junior, um jogador que entende o futebol como uma atitude em relação à vida baseada na alegria, respeito e esportividade.

O futebol, que é o esporte mais global que existe, deve ser um exemplo de valores e convivência.

O clube instruiu seus serviços jurídicos a tomar medidas legais contra qualquer pessoa que use expressões racistas contra nossos jogadores.