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

Rodrigo Coutinho

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Coutinho: Crescimento de Léo Ortiz chama a atenção no Red Bull Bragantino

Colunista do UOL

18/12/2021 04h00

De muito questionado no primeiro ano de profissional do Inter à convocado para a Seleção e um dos principais defensores do continente nas duas últimas temporadas. Léo Ortiz é um belo exemplo de como os atletas precisam de um contexto favorável para evoluir e ganhar projeção na carreira. Fez mais uma belíssima jornada em 2021 e fixou seu nome no cenário sul-americano.

Mesmo com a derrota do Red Bull Bragantino na decisão da Copa Sul-Americana, Léo conseguiu se destacar, a exemplo do que fez em grande parte dos jogos de 2020 e 2021. Sua qualidade técnica na saída de bola, gerando bons es verticais e inversões de jogo precisas, encaixa perfeitamente no estilo de posse e circulação da bola de pé em pé no ataque posicional da equipe de Bragança Paulista.

Capitão do time dirigido por Maurício Barbieri, Ortiz também mostra liderança em campo e cresceu bastante em algo que pecava no início da carreira: a proteção da própria área. Hoje é um defensor de posicionamento mais apurado e firmeza nos duelos individuais. Por mais que esta não seja sua principal característica, consegue competir em nível bem mais alto. Ganhou também mais velocidade nas mudanças de direção.

O desenvolvimento foi reconhecido por Tite, e não é exagero dizer que Léo Ortiz disputa uma das quatro vagas para zagueiros no Mundial do Catar em 2022. Não está entre os favoritos, mas corre por fora. Conta a seu favor, além da qualidade demonstrada em campo, se lesionar muito pouco. Fez mais de 130 jogos no Massa Bruta somando as últimas três temporadas.

01 - Fonte: Opta - Fonte: Opta
Números de Léo Ortiz em 2021
Imagem: Fonte: Opta

Filho do lendário jogador de futsal Ortiz, Léo foi revelado pelo Internacional e estreou nos profissionais do clube já com 21 anos, numa vitória contra o Oeste, pela Copa do Brasil de 2017. Antônio Carlos Zago o subiu aos profissionais e depois o dirigiria no Red Bull Bragantino. Apesar das críticas, ganhou espaço naquela temporada e foi titular em 28 dos 31 jogos em que foi utilizado, 13 deles na Série B.

No ano seguinte foi emprestado ao Sport. Começou bem. Foi titular no Campeonato Pernambucano, mas caiu muito na sequência e ou todo o Brasileirão de 2018 no banco de reservas. O Leão foi derrotado nos seis jogos em que Léo Ortiz entrou em campo naquela competição. Não foi uma boa temporada.

As coisas começaram a fluir a partir de 2019, quando foi novamente emprestado, agora para o ainda Red Bull Brasil, que se uniria ao Bragantino e formaria o atual clube em meados daquela temporada. Léo foi titular durante todo o ano com o mesmo Antônio Carlos Zago que o lançou nos profissionais do Inter.

O time fez um bom Campeonato Paulista e venceu com folgas a Série B. O defensor foi um dos destaques da competição e subiu com moral, tanto que o Massa Bruta comprou os 40% dos direitos que ainda estavam presos ao Internacional em 2020. Zago saiu, Felipe Conceição ou pelo clube e Mauricio Barbieri assumiu. Em todo esse período, Ortiz manteve-se intacto entre os titulares.

Muitas vezes aquele jovem que muita gente não entende como pode ter se profissionalizado em determinado clube, só precisa de um ambiente favorável em todos os âmbitos para o seu desenvolvimento. Crucificar e rotular eternamente não é o caminho em casos assim.