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

Sem times 100% em 2022, Brasil seguirá como único campeão com 7 vitórias

Gabriel Martinelli em ação pelo Brasil surante partida contra Camarões - Michael Regan - FIFA/FIFA via Getty Images
Gabriel Martinelli em ação pelo Brasil surante partida contra Camarões Imagem: Michael Regan - FIFA/FIFA via Getty Images

Demétrio Vecchioli

Colunista do UOL, em São Paulo

02/12/2022 18h00

Classificação e Jogos

A derrota do Brasil para Camarões acabou com a única campanha de 100% de aproveitamento que restava na Copa do Mundo do Qatar. Com isso, essa é a primeira vez, desde que o Mundial começou a ter o atual formato, em 1998, que nenhuma equipe vence os três jogos de primeira fase.

Ao mesmo tempo, nenhuma outra seleção pode chegar ao feito alcançado pela seleção em 2002: vencer a Copa com sete vitórias em sete jogos. Desde 1998, em todas as outras ocasiões o campeão tropeçou ao menos uma vez. Em 1970, a seleção também campanha 100% até o título, mas na época eram necessários só seis jogos.

Com relação à primeira fase, o próprio Brasil teve 100% de aproveitamento — três vitórias em três jogos — em 2002, na última vez em que chegou à final. Uruguai, Croácia e Bélgica alcançaram o feito em 2018, Holanda, Argentina, Colômbia e a mesma Bélgica em 2014, com as duas primeiras repetindo feito de 2010.

A última vez que ninguém chegou a três vitórias na primeira fase foi em 1994, quando o formato ainda era outro, com 24 equipes divididas em seis grupos. Com menos equipes, quatro dos seis terceiros colocados avançavam, o que permitia a quem vencesse os dois primeiros jogos chegar à última rodada relaxado.

Hoje (2) o Brasil enfrentou Camarões já classificado, com um time inteiro reserva, mas precisava ao menos de um empate para assegurar a primeira colocação, sem depender do outro jogo do grupo. Se perdesse, poderia deixar escapar a liderança. Só não aconteceu porque a Suíça venceu por só um gol de diferença, mesma situação da vitória camaronesa.

Além da seleção brasileira, também Portugal e França chegaram à última rodada com 100% de aproveitamento. Os ses perderam para a Tunísia, em um dos resultados mais inesperados da Copa, enquanto os portugueses, hoje mais cedo, foram superados pela Coreia do Sul. Ainda assim, todos terminaram em primeiro lugar de suas chaves.

As melhores campanhas da fase de grupos foram de Holanda, Inglaterra e Marrocos. Os ingleses, porém, tiveram campanha melhor, pelo saldo de gols: 7. Da Holanda foi quatro e, de Marrocos, três. A seleção brasileira a única sem sofrer gols, até ser vazada por Camarões no finalzinho do jogo de hoje.

Errata: este conteúdo foi atualizado
Diferentemente do que foi publicado no texto, o Brasil não teve 100% de aproveitamento na fase de grupos da Copa de 1998. O erro foi corrigido.