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

Torcedores que penduraram boneco de Vini em ponte são soltos, mas punidos

Torcedores do Atlético de Madri simularam enforcamento em boneco com a camisa de Vini Jr - Reprodução
Torcedores do Atlético de Madri simularam enforcamento em boneco com a camisa de Vini Jr Imagem: Reprodução

25/05/2023 07h51

Os quatro torcedores detidos na Espanha por pendurar em uma ponte um boneco que representava o atacante brasileiro Vinícius Júnior estão proibidos de se aproximar a menos de um quilômetro de qualquer estádio de futebol, anunciou a justiça espanhola nesta quinta-feira (25).

Após a detenção na terça-feira e de uma audiência com um juiz, os quatro suspeitos de "crime de ódio" foram colocados em liberdade condicional e proibidos, até nova ordem, de uma aproximação "a menos de 1.000 metros" de um estádio de LaLiga nos dias de partidas, informou um tribunal de Madri em um comunicado.

Em pleno escândalo pelos insultos racistas proferidos contra o jogador do Real Madrid, a ordem de afastamento também envolve o centro de treinamento do clube, ao nordeste da capital espanhola, perto de onde um boneco que estava com o uniforme de Vinícius Júnior foi pendurado em uma ponte para simular um enforcamento.

Os quatro detidos - três deles integrantes de grupos de torcedores radicais - foram acusados de crime contra a integridade moral e crime de ódio, como são enquadradas as ofensas racistas na Espanha.

Os quatro permaneceram calados durante a audiência, de acordo com o tribunal de Madri, que anunciou o prosseguimento das investigações.

O boneco com o uniforme Vini Jr foi pendurado em uma ponte em 26 de janeiro, dia de uma partida entre Real Madrid e Atlético de Madrid pelas quartas de final da Copa do Rei. Ao lado do boneco estava uma faixa com a frase "Madri odeia o Real".

Ao lado do boneco estava uma faixa com a frase "Madri odeia o Real".

A detenção dos quatro aconteceu na terça-feira, dois dias após uma partida do campeonato espanhol em Valência na qual torcedores do time local chamaram o brasileiro de "macaco" e simularam sons do animal. Vinícius denunciou o ataque ainda durante a partida.

O incidente provocou indignação na Espanha e no exterior, o que forçou as entidades que comandam o futebol espanhol e as autoridades a adotar medidas contra o racismo, um problema que nunca foi abordado da maneira apropriada no país.