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

OPINIÃO

Casagrande defende Abel após fala sobre não vir ao Brasil para fazer amigos

Colaboração para o UOL, em Aracaju

06/02/2023 19h42

O técnico português Abel Ferreira gerou mais uma polêmica ao dizer não veio ao Brasil para fazer amigos, em alusão ao seu comportamento à beira do campo. No Fim de Papo, o colunista Walter Casagrande defendeu a declaração do treinador do Palmeiras e disse que ela não pode ser levada ao pé da letra. Segundo Casão, ele pensava como Abel quando foi jogar na Europa.

Quando ele fala: 'Não vim aqui para fazer amigos, vim aqui para ganhar', eu entendo. Quando fui para a Europa eu pensava a mesma coisa, não saía com ninguém, não ia jantar com ninguém, não ficava em rodinha com os jogadores, eu treinava, jogava, me dava muito bem com os caras, brincava com eles no treino e na concentração, mas depois eu ia embora para casa e ficava com a família. Eu queria estar focado em jogar e fazer gols", afirmou Casagrande.

Casão contou que as temporadas no futebol italiano lhe renderam bons amigos, mas o foco era se firmar no continente europeu. Para ele, a declaração de Abel não soou arrogante.

Saí da Itália com diversos amigos, temos um grupo do Torino que a gente bate papo até hoje, mas eu não fui lá para fazer isso, fui para jogar bola e procurar meu espaço, então entendi o que o Abel quis dizer. Não foi prepotência ou arrogância, ele quis dizer que não veio para o Brasil para ear, veio para trabalhar no Palmeiras e ganhar títulos. Não pode levar ao pé da letra essa frase, é um exagero para mostrar que está aqui para fazer um trabalho sério, focado e ganhar títulos."

'Às vezes Fla perde para ele mesmo pela soberba', diz Casão sobre Mundial

O Flamengo encara o Al-Hilal amanhã (7), às 16h, na semifinal do Mundial de Clubes, valendo vaga na decisão. Do outro lado da chave, está o Real Madrid, que chega desfalcado. Casagrande disse que o Rubro-Negro tem todas as condições de voltar do Marrocos campeão do mundo, mas não pode entrar em campo com soberba.

"O Real ainda é um pouco favorito pelo histórico, mas com os desfalques, o Flamengo tem muita chance de ganhar esse título. Vai depender muito do Flamengo, porque tem a soberba da diretoria, 'ah, nós somos o Flamengo, somos favoritos e vamos ganhar o jogo'. Às vezes o Flamengo perde jogos importantes para ele mesmo, pela soberba que tem e é nítido isso. Mas se ar amanhã vai chegar forte contra um Real desfalcado", analisou Casão.

'Flamengo precisa ser malvadão', diz Marília Ruiz sobre semifinal

Na opinião da colunista Marília Ruiz, o Flamengo precisa entrar em campo amanhã totalmente focado na semifinal, no modo "malvadão" como brinca a torcida rubro-negra.

"O Flamengo precisa ser malvadão na semifinal do Mundial. Precisa ser malvado, não dá para pegar um time que a gente assistiu no último sábado e que chegou com bastante dificuldade a essa semifinal, e o Flamengo inteiro e sem nenhum desfalque, e não fazer uma partida à la Flamengo. Não dá para ganhar de 1 a 0 como ganhou do Boavista, ou até dá pra ganhar de 1 a 0, mas precisa ser melhor, hegemônico na partida", disse Ruiz.

Assista ao Fim de Papo na íntegra