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

Corinthians

Cássio e Willian se posicionam sobre ameaças após vitória do Corinthians

Cássio, goleiro do Corinthians - Marcello Zambrana/AGIF
Cássio, goleiro do Corinthians Imagem: Marcello Zambrana/AGIF

Do UOL, em São Paulo

10/04/2022 21h25

Titulares do Corinthians contra o Botafogo na estreia do Campeonato Brasileiro, o goleiro Cássio e o meia Willian se manifestaram na saída do estádio Nilton Santos sobre as ameaças digitais que, junto com alguns de seus familiares, receberam nos últimos dias. A dupla se mostrou chateada com o acontecimento e relataram momentos de tensão.

"Difícil o que ei na semana, é uma coisa que foge do controle, para os outros pode parecer normal, mas não é normal o que aconteceu com minha esposa. Não desejo para ninguém, tem de se colocar no lugar das pessoas quando acontece uma coisa dessa", explicou Cássio ao falar sobre as ameaças dirigidas à sua esposa, que depois do ocorrido precisou apagar sua conta no Instagram para preservar sua segurança.

Ainda na mesma entrevista, Cássio rechaçou a possibilidade de uma inha no elenco entre os jogadores mais velhos e se comprometeu em ajudar o técnico Vítor Pereira e sua comissão técnica nos trabalhos no CT Joaquim Grava. Os boatos de que o goleiro teria pedido para sair do clube, inclusive, também irritaram bastante o ídolo do Timão.

"Fiquei chateado com as pessoas envolverem meu nome com a, com uma série de coisas, inha, time rachado, isso não existe no Corinthians. Pode perguntar ao presidente, ao Alessandro, ao nosso diretor e ao treinador mesmo. Falando de mim, é só vocês verem, tenho feito tudo o que o treinador pede, de jogar mais com os pés, então fico chateado, sabe? Respeito a crítica, sou ser humano, erro, mas jamais vou me sentir maior que a instituição. Tudo o que aconteceu com minha família e esposa, essas ameaças, a gente sente, não vou dizer que não sinto, que não fiquei chateado, mas é bola para frente, seguir trabalhando, tem coisas muito boas pela frente", concluiu o goleiro.

Já o meia Willian, outra vítima dos ataques virtuais, também falou sobre o tema e lamentou o ocorrido. As filhas do jogador também foram alvos das ameaças, o que o motivou a prestar queixa na delegacia ao lado de Gil, Cássio, Paulinho e também do presidente Duilio Monteiro Alves. O caso está sendo investigado pela Polícia Civil, que já encontrou a maioria dos autores das mensagens.

"Infelizmente são coisas que a gente não consegue controlar, coisas que acabam nos chateando e afetando a nós jogadores e nossas famílias. Mas é seguir trabalhando e buscando as vitórias", falou o camisa 10 do Timão.

Corinthians