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

Trajano exalta golaço de voleio de Richarlison: 'Na história das Copas'

Colaboração para o UOL

24/11/2022 18h28Atualizada em 24/11/2022 20h45

Classificação e Jogos

Autor dos dois gols da vitória do Brasil por 2 a 0 contra a Sérvia, o segundo um golaço de voleio, Richarlison acabou com a maldição da camisa 9 e foi o grande nome da estreia brasileira no Mundial do Qatar.

No Posse de Bola, transmitido pelo UOL Esporte diariamente durante a Copa do Mundo às 18h, o jornalista José Trajano elogiou a estreia brasileira no Qatar e disse que, pela beleza, o golaço de Richarlison entrou para a história dos Mundiais.

"O Brasil com essa vitória se junta a Espanha, Inglaterra e França como destaques da primeira rodada. A escalação do Tite funcionou. Achava que a Sérvia seria melhor do que se mostrou, tirando um pouco de dificuldade no primeiro tempo, o resto foi normal. E que gol do Richarlison, um gol desses em Copa do Mundo entra para a história", afirmou.

Apesar de aprovar a estreia brasileira, Trajano se decepcionou com a atuação de Neymar, que foi substituído após uma entorse no tornozelo.

"Uma pequena decepção, o menino Ney, o nosso melhor jogador, pela expectativa, teve muito mais gente se destacando, o Richarlison pelos gols, o Vini Jr, Paquetá bem, Casemiro bem, e o menino Ney muito fominha, prendendo a bola, acabou se machucando, ainda não sabemos a intensidade da lesão. Era uma obrigação ganhar, mas o Brasil ganhou com enorme tranquilidade."

Juca: 'Brasil fez sua melhor estreia em Copas desde 1970'

Presente no Estádio Lusail, palco da vitória do Brasil, Juca Kfouri elogiou bastante a atuação contra a Sérvia e disse que foi a melhor estreia brasileira em Copas desde 1970, quando Pelé e companhia golearam a Tchecoslováquia por 4 a 1. "Gostei muito, foi muito bom", disse Juca.

Arnaldo aprova trio de ataque do Brasil: 'Difícil tirar'

Arnaldo Ribeiro elogiou a escalação ofensiva do Brasil. Para ele, será difícil Tite mexer no setor ofensivo da equipe. "Foi uma boa apresentação. Esse sistema mais ousado funcionou. Vai ser muito difícil tirar esse trio da frente. Não estou falando de Neymar, estou falando de Raphinha, Richarlison e Vinicius Júnior."

Lesão de Neymar preocupa para a Copa? Casagrande comenta

Neymar saiu de campo lesionado após uma torção de tornozelo e chorou no banco de reservas —a imagem logo viralizou nas redes sociais. Será que a lesão preocupa para o restante da Copa? Casagrande disse que mesmo que a lesão não seja grave, o camisa 10 brasileiro pode ter problema para os próximos jogos. "Atrapalha os treinamentos. Tem que parar de treinar, perde ritmo de jogo. [O problema] Não é a contusão em si, mas o tempo que você fica parado."

Quem foi a melhor seleção da primeira rodada? Colunistas opinam

Com os jogos desta quinta (24), todas as 32 seleções já estrearam na Copa. José Trajano, Casagrande, Juca Kfouri, Arnaldo Ribeiro e Mauro Cézar debateram a primeira rodada da fase de grupos do Mundial e elegeram as seleções com melhor futebol até aqui.

Qual o jogo 'imperdível' de amanhã? Colunistas opinam

A segunda rodada da fase de grupos do Mundial do Qatar começa amanhã (25), com quatro jogos das 7h às 16h. Pelo pote A, a seleção da casa enfrenta Senegal, e a Holanda pega o Equador no confronto dos líderes. Já no grupo B, a Inglaterra joga contra os EUA, enquanto País de Gales encara o Irã. Qual o jogo "imperdível"? Veja a opinião dos comentaristas.

Assista ao Posse de Bola na íntegra