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

Danilo Lavieri

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Faltou alguém consagrar Paquetá, que foi o melhor da seleção brasileira

Douglas Luiz, Paquetá e Militão celebram gol do Brasil sobre o Equador, na Copa América - Lucas Figueiredo/CBF
Douglas Luiz, Paquetá e Militão celebram gol do Brasil sobre o Equador, na Copa América Imagem: Lucas Figueiredo/CBF

Colunista do UOL

27/06/2021 19h56

Receba os novos posts desta coluna no seu e-mail

Email inválido

A seleção brasileira entrou em campo hoje (27) diante do Equador completamente modificada. Foram dez mudanças em relação ao triunfo contra a Colômbia e vários atletas precisando mostrar serviço e outros poupados para evitar desgaste ou suspensão. No empate por 1 a 1, o melhor jogador foi Lucas Paquetá, que atuou com liberdade para criar, apareceu bastante perto da área e só não saiu de campo consagrado porque seus companheiros não ajudaram.

Roberto Firmino praticamente não tocou na bola. Já longe de sua melhor fase no Liverpool, ele chegou a mostrar uma evolução na última partida, mas agora voltou a desaparecer em campo. Gabigol batalhou, procurou mais a bola em relação às últimas aparições, mas também não conseguiu ser efetivo. Até Vinicius Junior, que entrou no segundo tempo, teve chance de recolocar o Brasil à frente, mas ele não soube aproveitar excelente e justamente de Paquetá.

Quando convocado, o nome do meio-campista foi questionado por boa parte dos torcedores. Depois de começar muito bem no Flamengo, ele foi muito mal no Milan, teve até problemas extracampo e precisou ser negociado com o Lyon. Nessa última temporada, ele foi muito bem na equipe sa e voltou a ser lembrado pela seleção.

Tite já deu chances a ele para atuar quase como um meia e também como segundo homem do meio. Hoje, ele conseguiu mesclar as duas funções, na maioria das vezes caindo da direita para o centro. Talvez por não competir por espaço com Neymar, que ficou no banco, pode ser ainda mais ativo na intermediária. Nos 78 minutos que esteve em campo, ele tocou na bola em 59 ocasiões e teve 92% de acerto nos es.

Contra a Colômbia, na última partida antes de hoje, ele já havia mudado a dinâmica do meio-campo, dando bem mais circulação de bola entrando no lugar de Fred, que dá mais segurança defensiva, mas não consegue cumprir a mesma função para armar jogo.

Tite disse em entrevista que acha que o Brasil pode atuar sem necessariamente dois volantes como Casemiro e Fred, mas que isso requer ajustes na seleção. Paquetá tem mostrado que talvez valha o esforço da comissão em achar uma forma de ter mais chances, especialmente sendo um segundo homem de meio.