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

Quem é o fenômeno do basquete de 2,20m chamado de 'alien' por LeBron

Victor Wembanyama, pivô francês de 2,20m, é promessa do basquete - Ethan Miller/Getty Images/AFP
Victor Wembanyama, pivô francês de 2,20m, é promessa do basquete Imagem: Ethan Miller/Getty Images/AFP

Do UOL, em São Paulo

24/10/2022 04h00

O pivô francês Victor Wembanyama tem só 18 anos, mede 2,20m (ainda deve crescer mais um pouco) e é apontado como a próxima grande estrela do basquete. Para LeBron James, o jovem jogador é como um alienígena.

Wembanyama atualmente defende o Boulogne-Levallois Metropolitans 92, da França, e esteve nos Estados Unidos no início de outubro para amistosos no país contra um time de prodígios.

Foram 37 pontos, duas bolas de três e cinco tocos no primeiro jogo. Ele ganhou destaque até na página da NBA no Instagram, que publicou alguns dos melhores lances do pivô. Mas o que mais vem chamando a atenção é a habilidade.

Como um gigante de 2,20m consegue se mover com agilidade e ser decisivo na defesa e no ataque? LeBron James foi questionado sobre o novo fenômeno do basquete, chamado de "unicórnio", expressão para se referir a um jogador grande que tem técnica e não apenas força física.

"Todo mundo tem sido considerado um unicórnio nos últimos anos, mas ele é mais tipo um alienígena. Ninguém nunca viu ninguém tão alto quanto ele jogar de maneira tão fluída e graciosa", disse LeBron.

"Com a altura dele, a habilidade de colocar a bola em quadra, a capacidade nas bolas de três, tocos, ele é certamente um talento geracional. Espero que ele se mantenha saudável, que é o mais importante", acrescentou o astro do Los Angeles Lakers.

A expectativa é que Wembanyama logo deixe o basquete francês. O pivô é cotado para ser a primeira escolha do Draft da NBA de 2023, que será realizado em abril do ano que vem. Agora resta esperar qual a sortuda equipe que terá a chance de escolher o gigante de 2,20m.

"Sempre senti que estava em um nível diferente. Eu estava vivendo uma vida diferente do que todos os outros na escola, por exemplo, mesmo no Ensino Fundamental. Eu só estava pensando diferente de todos. Sempre tentei ser original em tudo o que faço, e é realmente algo que fica na minha alma: ser original. Seja único. É tipo, eu não consigo explicar. Acho que nasci com isso", afirmou a jovem estrela ao jornal The New York Times.