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

Não esqueci que me colocaram para treinar separado, diz Suárez sobre Barça

Luis Suárez, no Atlético de Madrid, encara o Barcelona no sábado, pelo Espanhol - Oscar del Pozo/AFP
Luis Suárez, no Atlético de Madrid, encara o Barcelona no sábado, pelo Espanhol Imagem: Oscar del Pozo/AFP

Colaboração para o UOL, em São Paulo

30/09/2021 17h23

Prestes a enfrentar seu ex-clube pelo Campeonato Espanhol, Luis Suárez segue magoado com sua saída conturbada do Barcelona no ano ado.

Em entrevista ao canal de televisão espanhol TVE, o atacante do Atlético de Madri deixou claro que não tem "rancor" do clube catalão. Mesmo assim, ele "nunca esqueceu" o período que treino separado do elenco do Barça.

"Não, de forma alguma. Às vezes dói pela forma, pela trajetória e pelo respeito que sempre tive (ao clube), mas não tenho rancor. (...) As formas me incomodaram, me machucaram mais do que tudo, porque sou um jogador que sempre deu tudo ao Barcelona, e me entreguei totalmente ao clube. A forma como fui tratado doeu, mas também com a autocrítica de dizer que coisas acontecem, algo acontece e o destino vai dizer quem acertou e quem não", disse Suárez sobre sua saída do Barcelona.

"Não me esqueço que no ano ado, na pré-temporada, me mandaram treinar separadamente para me irritar e, como profissional, falei com o treinador (Koeman) e ia treinar todo dia sem cara de mau", completou 'El Pistolero'.

Mesmo assim, Suárez lamentou a derrota do Barcelona para o Benfica pela Liga dos Campeões. O atacante assistiu ao jogo e não escondeu a dor ao ver amigos cabisbaixos.

"Sim, vi o jogo. Obviamente que como profissional e colega, dói ver amigos cabisbaixos e a difícil situação que o clube está vivendo. Isso não alegra, porque tenho sentimentos pelo clube, assim como tenho por Liverpool e Ajax", falou.

O Atlético de Madri recebe o Barcelona neste sábado, às 16h (de Brasília), pela oitava rodada do Campeonato Espanhol. Quatro colocado, o Atlético tenta a vitória para se aproximar do líder Real Madrid.

Por sua vez, o Barcelona tenta espantar a crise e conseguir a segunda vitória consecutiva na competição.