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

Casagrande: Dani Alves ou Militão? Escolha de Tite será 'dor de cabeça'

Colaboração para o UOL

25/11/2022 18h32

Classificação e Jogos

Um dia após a estreia do Brasil na Copa do Mundo do Qatar, o técnico Tite já soube que precisará modificar a equipe para a partida diante da Suíça. Danilo e Neymar foram diagnosticados com lesões e não estarão disponíveis para o próximo jogo, na segunda-feira, às 13h.

No Posse de Bola, programa que o UOL Esporte transmite diariamente às 18h durante a Copa do Mundo, o colunista Casagrande comentou sobre os desfalques e se disse mais preocupado com a ausência do lateral direito.

"Acho que o problema não é o Neymar. Problema maior é quem o Tite vai colocar de lateral direito. Vai ser o Daniel Alves ou será o Militão? Se ele escolher Militão, ele vai tirar um que ele convocou como zagueiro para colocar na lateral direita e nós vamos perguntar: 'Para que levou Daniel Alves?' Se ele colocar o Daniel e não funcionar, a pergunta será a mesma. Então a dor de cabeça é na lateral".

Em relação ao substituto de Neymar, Casagrande disse que a escolha de Tite é mais simples. "No meio, ele pode colocar o Paquetá um pouco para frente e colocar o Fred para fazer a dupla de volante ou não mexer na estrutura e colocar o Rodrygo, continuar os três atacantes e o Rodrygo jogando por dentro".

Juca: Sem Neymar, 'molecada' se sentirá mais leve e feliz

Juca Kfouri afirmou que a lesão de Neymar pode abrir espaço ao protagonismo dos mais jovens na seleção. Para ele, o Brasil precisa se livrar da "Neymardependência".

"Neymar é o mais talentoso da seleção, não sou daqueles que abdicam mão do talento, mas acho que ele pode causar uma exigência de atenção que sem ele o grupo vai se sentir mais alegre e feliz e essa molecada vai partir para cima."

Richarlison é sério candidato ao prêmio Sócrates, diz Trajano

Grande destaque da estreia da seleção brasileira, Richarlison teve seu nome disparado nos mecanismos de pesquisa desde então. O colunista José Trajano se disse impressionado pelas atitudes do atacante que fez dois gols diante da Sérvia.

"Houve uma imensa procura para saber quem é o Richarlison. Ele é um exemplo para todos os jogadores mundo afora. Ele é candidato sério ao prêmio Sócrates. E me impressionou muito que as conversas após a vitória são de amor e carinho pela seleção brasileira. E, não pela atuação, mas a vitória, o Richarlison e o Vini Jr., esses dois estão trazendo de volta o carinho do torcedor brasileiro para a seleção".

Casão detona post de Raphinha em defesa de Neymar: 'Fiquei revoltado'

Após Neymar ter a lesão no tornozelo confirmada, Raphinha se queixou do tratamento recebido pelo camisa 10 de parte da torcida brasileira. Em publicação nas redes sociais, ele afirmou que "o maior erro de Neymar é nascer brasileiro, esse país não merece o seu talento e seu futebol".

Casagrande não gostou da declaração e detonou Raphinha: "Fiquei muito revoltado com o Raphinha, é um desrespeito ao povo brasileiro ele falar isso. Desculpa, Raphinha, chutou para fora, além das 10 dancinhas que você ensaiou e não fez porque jogou um jogo e perdeu dois gols, começa a jogar bola, é hora de jogar bola".

Argentina de Messi ou França de Mbappé. Qual o jogo imperdível do sábado?

Pela segunda rodada da Copa do Mundo, Argentina e França voltam a campo neste sábado (26). Enquanto o time de Messi joga para evitar a eliminação precoce, a seleção comandada por Mbappé tenta a segunda vitória seguida. José Trajano, Juca Kfouri, Casagrande, Arnaldo Ribeiro e Eduardo Tironi opinaram sobre o duelo imperdível do dia.

Assista ao Posse de Bola na íntegra