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

Casão: 'Final da Copa mostrou o quanto futebol brasileiro está atrasado'

Colaboração para o UOL

18/12/2022 17h16Atualizada em 19/12/2022 05h18

Classificação e Jogos

A Argentina bateu a França na final da Copa do Qatar e se sagrou tricampeã do mundo.

Casagrande afirmou que a decisão evidenciou o atraso do futebol brasileiro: "Essa Copa e essa final mostraram o quanto o futebol brasileiro está atrasado, fora do cenário mundial em todos os sentidos." "Há resistência contra um treinador estrangeiro na seleção, vamos colocar quem, os mesmos caras para deixar jogador mandar, fazer a, ser influenciado por ex-campeões?"

'Jamais vi uma coisa tão emocionante', diz Trajano

José Trajano destacou a emoção da decisão: "O craque do jogo foi o futebol. Nós vimos uma final de Copa exuberante, histórica, emocionante, que eu jamais tinha visto coisa igual. Já vi muita coisa no futebol. Estou com 76 anos, comecei na imprensa com 16, faço 60 anos de imprensa esportiva ano que vem, mas jamais vi uma coisa tão emocionante."

Mauro: 'Seria muita maldade Messi sem Copa'

Mauro Cezar afirmou que Messi precisava de uma Copa para chamar de sua: "Hoje a gente viu muitas coisas bonitas, a cena do Messi olhando para a taça e iniciando o tardio caso de amor foi muito bonita, como se ela quisesse ir na direção dele e finalmente ela pôde ser erguida por ele. A Copa já cometeu essa injustiça, seria uma maldade, uma perversidade o Messi não ter essa chance."

Casagrande: final da Copa foi uma obra de arte

Casagrande definiu a final como uma grande obra de arte: "Acho incrível que ainda tenha pessoas que não consideram o futebol como arte. Hoje nós vimos aqui uma obra de arte. Poderiam ser dois diretores, Martin Scorsese e (Quentin) Tarantino, escrevendo um roteiro de um filme que vai ganhar o Oscar de melhor filme, melhor ator, melhor coadjuvante, melhor fotografia, melhor trilha sonora, melhor roteiro".

Trajano critica Globo por despedida de Galvão

José Trajano criticou a Globo por priorizar a despedida de Galvão Bueno em detrimento da festa argentina: "Ela se lixou para o espetáculo. O grande espetáculo ficou em segundo plano quando acabou o jogo. O Messi não foi o grande personagem, nem o Mbappé. Eles transformaram a despedida do Galvão Bueno em um assunto mais importante".

Assista ao Posse de Bola na íntegra