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

Marquinhos faz primeiro treino com bola, mas ainda exige cuidado na seleção

Marquinhos faz trabalho físico na seleção brasileira - Igor Siqueira/UOL
Marquinhos faz trabalho físico na seleção brasileira Imagem: Igor Siqueira/UOL

Do UOL, em Turim

16/11/2022 13h09

Classificação e Jogos

A previsão da comissão técnica se concretizou e todos os 26 jogadores da seleção brasileira convocados para a Copa do Mundo participaram do treino com bola realizado hoje (16), no CT da Juventus, em Turim.

Inclusive o zagueiro Marquinhos, que demanda maior atenção do departamento médico nos últimos dias, porque se apresentou após perder um jogo do Paris Saint-Germain por conta de dores musculares.

Mesmo participando da ação com a bola, o cronograma de atividades de Marquinhos ao longo da tarde foi diferente. Ele de uma leve corrida no começo, depois ou para um circuito montado no campo anexo — por onde os demais também aram.

Outra diferença foi que quando Tite alternou os jogadores usados no trabalho com bola, quem estava fora ficava na roda de bobinho. Menos Marquinhos, que foi destacado de volta ao anexo para reforço com o preparador Fabio Mahseredjian. O zagueiro não voltou para a conclusão da atividade mais intensa, na qual a seleção foi dividida em dois times, com enfrentamento entre eles no 11 contra 11.

No campo, Tite fez um trabalho de posicionamento defensivo da seleção, simulando trocas de es do adversário na saída de bola. Como ele misturou os jogadores, não deu para ver como será o time titular.

O começo do treino demandou o uso da tecnologia. Todos foram reunidos à beira do campo e acompanharam as instruções de Tite diante de uma TV. A tela estava virada para o lado oposto à posição da imprensa.

Antes do trabalho físico, os jogadores cantaram parabéns para o aniversariante Bruno Guimarães. O volante completou 25 anos.

A seleção volta a treinar no CT da Juventus amanhã (17). A delegação fica na Itália até sábado, quando viaja a Doha, no Qatar. A estreia na Copa do Mundo é em 24 de novembro, contra a Sérvia.