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

Rafael Reis

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Cristão fervoroso, volante da Ucrânia na Eurocopa é militante antitatuagem

Taras Stepanenko em ação pela Ucrânia durante jogo da Eurocopa 2020, realizada em 2021 - Mihai Barbu/POOL/AFP
Taras Stepanenko em ação pela Ucrânia durante jogo da Eurocopa 2020, realizada em 2021 Imagem: Mihai Barbu/POOL/AFP

29/06/2021 04h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

Esta edição da Eurocopa tem sido um terreno fértil para manifestações e protestos políticos.

Jogadores de várias seleções têm se ajoelhado antes das partidas em gesto característico da luta antirracismo. O movimento LGBTQIA+ também tem sido representado nas braçadeiras de capitão de Alemanha e Holanda e nas placas de publicidade de alguns dos patrocinadores do torneio.

O atacante austríaco Marko Arnautovic chegou a ser suspenso de uma rodada da primeira fase por ter comemorado um gol sobre a Macedônia do Norte ofendendo a origem albanesa de dois adversários.

Mas, mesmo com tantas pautas políticas sendo levadas para dentro de campo, o volante Taras Stepanenko ainda não conseguiu encontrar espaço na competição continental para exercer a sua militância.

O jogador da seleção da Ucrânia, que enfrenta a Suécia a partir das 16h (de Brasília), no Hampden Park, em Glasgow (Escócia), na partida que fecha as oitavas de final da Eurocopa, usa parte do seu tempo livre para tentar convencer as pessoas a não se tatuarem.

Cristão fervoroso, o veterano jogador que defende o Shakhtar Donetsk desde 2010 é contra a cultura das tatuagens. "Elas são um símbolo pagão", resumiu, em entrevista concedida seis anos atrás ao site "Sports.ru".

Aparentemente, a militância feita pelo volante de 31 anos, um dos remanescentes do time que disputou a Eurocopa ada, não tem encontrado muito apoio entre seus companheiros de seleção.

O meia-atacante Andriy Yarmolenko, capitão da Ucrânia e com quem Stepanenko já teve problemas de relacionamento no ado, exibe tatuagens nos dois antebraços, o direito e o esquerdo.

Marlos, que nasceu no Brasil, optou por defender a seleção do leste europeu e também é companheiro do militante no Shakhtar, é mais um adepto dos desenhos corporais por baixo da camisa amarela.

A campanha atual já é a melhor da história da Ucrânia na Eurocopa desde a dissolução da União Soviética. Nas duas participações anteriores (2012 e 2016), a equipe não havia ado da fase de grupos.

O último dia das oitavas terá a realização de duas partidas. Além do confronto entre ucranianos e suecos, Inglaterra e Alemanha também medirão forças por vaga nas quartas. A próxima fase do torneio começa na sexta-feira.

O sucessor de Portugal no posto de campeão europeu de seleções será conhecido no dia 11 de julho. O estádio de Wembley, em Londres (Inglaterra), receberá a decisão.

Originalmente, o torneio era para ter sido disputado no meio do ano ado. No entanto, a pandemia da covid-19 fez com que ele fosse adiado em 12 meses.

A novidade desta edição é que não há uma sede fixa. Para comemorar os 60 anos do continental, a Uefa decidiu realizar a competição em 11 cidades espalhadas por 11 países diferentes (alguns que nem classificaram suas seleções).

Além da Inglaterra, sede da última partida, a Euro-2020 (sim, ela manteve esse nome mesmo com o adiamento da data) também está ando por Itália, Azerbaijão, Dinamarca, Alemanha, Escócia, Espanha, Hungria, Holanda, Romênia e Rússia.