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

Débora Miranda

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.

Nadine Basttos sobre ataque a bandeirinha: insegurança em campo é constante

Técnico da Desportiva Ferroviária acerta cabeçada em auxiliar durante jogo do Campeonato Capixaba - Reprodução
Técnico da Desportiva Ferroviária acerta cabeçada em auxiliar durante jogo do Campeonato Capixaba Imagem: Reprodução

Colunista do UOL

13/04/2022 04h00

Ao ver a assistente de arbitragem Marcielly Netto levar uma cabeçada do técnico Rafael Soriano, na partida entre Desportiva e Nova Venécia, a ex-árbitra e atual comentarista do SBT Nadine Basttos diz que se sentiu triste a angustiada. "Na hora me coloquei no lugar dela."

Estive ali por muitos anos, e a insegurança era um sentimento constante. A violência está presente no futebol, parece que, por ser um esporte, todos podem se exaltar da maneira que querem e ninguém fará nada, pois vão dizer que foi no calor do momento e depois pedir desculpas.

Soriano teria se irritado após o árbitro da partida, Arthur Gomes Rabelo, encerrar o primeiro tempo sem que seu time pudesse cobrar um escanteio. Mas quem levou a cabeçada não foi ele, e sim a assistente.

"Naquele momento senti que também estava sendo agredida", diz a árbitra Edina Alves Batista. "Para nós, árbitras e assistentes, não foi apenas uma agressão contra a mulher. Foi uma agressão contra uma profissional, que estava ali cumprindo com seu trabalho."

A comentarista de arbitragem Nadine Basttos - Beatriz Nadler/SBT - Beatriz Nadler/SBT
A comentarista de arbitragem Nadine Basttos
Imagem: Beatriz Nadler/SBT

Nadine lembra que as agressões em campo não são apenas voltadas às mulheres.

"Eu não posso afirmar que se ela fosse homem isso não aconteceria. Já vimos muitos árbitros serem agredidos também. Mas o que me revolta, além da agressão, é esse cidadão dizer que a mulher se beneficia disso", destaca Nadine.

Isso porque o técnico, depois de ser expulso de campo, saiu reclamando, negando a agressão —captada por câmeras— e dizendo que Marcielly estava "querendo aproveitar da situação por ser mulher".

"Ele jamais saberá o que é ser mulher nesse meio, o quanto é difícil", afirma Nadine, que acredita que episódios como esse continuam acontecendo no futebol por falta de punição severa.

"Ser demitido é pouco diante disso. Uma pessoa como essa não deveria ter espaço no meio esportivo. Ele deveria ser suspenso de suas atividades por um bom tempo. É preciso que o meio do futebol exija respeito de seus profissionais, acima de tudo."

Edina concorda. "Falar de punição é falar de cultura, de mudanças imediatas, de soluções rápidas e eficazes. Hoje vivemos em uma realidade que as punições aplicadas nem sempre condizem com o fato ocorrido, e a violência vem se tornando algo corriqueiro dentro e fora de campo. Punir os agressores é tão importante quanto prevenir esse tipo de atitude, com campanhas contra a violência e incentivo às mulheres para que se envolvem mais com o futebol."