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

Morte de avô faz galês ir às lágrimas em volta do país à Copa após 64 anos

Neco Williams, de País de Gales, chora após empate com os EUA pela Copa do Mundo - Ryan Pierse/Getty Images
Neco Williams, de País de Gales, chora após empate com os EUA pela Copa do Mundo Imagem: Ryan Pierse/Getty Images

Colaboração para o UOL, em São Paulo

21/11/2022 18h22

Classificação e Jogos

Neco Williams, lateral de Gales, não conteve as lágrimas após o retorno do país à Copa do Mundo após 64 anos no empate em 1 a 1 com os Estados Unidos, na tarde de hoje (21), no estádio Ahmad Bin Ali.

Depois do apito final, o jogador se emocionou e deixou o campo chorando. Pouco depois, ele revelou nas redes sociais que seu avô morreu ontem.

"Ontem recebi a notícia mais dificil que já tive de enfrentar: ouvir minha mãe me dizer que meu avô morreu na noite anterior. Ir de chorar o dia todo para jogar a Copa do Mundo foi extremamente difícil, mas superei com o apoio dos meus companheiros e família. Dedico esse jogo e esse ponto importante para ele", escreveu Neco Willians, no Twitter.

Gales não disputava uma partida de Copa do Mundo desde 1958, quando foi eliminado das quartas de final pelo Brasil, com gol de ninguém menos que Pelé.

Na partida de hoje, Gales fez um primeiro tempo ruim e foi dominado pelos EUA, mas se recuperou na etapa final e poderia até ter virado. Timothy Weah marcou para os americanos, e Gareth Bale deixou tudo igual para os europeus.

Com o resultado, Estados Unidos e País de Gales terminaram a primeira rodada empatados com um ponto na segunda e terceira colocação do Grupo B. A Inglaterra lidera com três pontos, já que mais cedo goleou Irã (o lanterna, com zero) por 6 a 2.

Enquete: Qual seleção vai surpreender na Copa do Mundo do Qatar?

A próxima rodada do Grupo B será disputada na sexta (25). O País de Gales enfrenta o Irã às 7h (de Brasília), enquanto os Estados Unidos jogam contra a Inglaterra às 16h (também de Brasília).

Qual seleção vai ser a campeã da Copa do Mundo do Qatar?

Enquete encerrada

Total de 43743 votos
7,61%
Divulgação/Adidas