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

Vasco

Vasco apresenta pacotão de reforços: "Muita profundidade nas escolhas"

Na ordem: Ernando, Marquinhos Gabriel e Zeca, os novos reforços do Vasco da Gama para 2021 - Rafael Ribeiro / Vasco
Na ordem: Ernando, Marquinhos Gabriel e Zeca, os novos reforços do Vasco da Gama para 2021 Imagem: Rafael Ribeiro / Vasco

Bruno Braz

Do UOL, no Rio de Janeiro

10/03/2021 18h31Atualizada em 11/03/2021 10h36

O Vasco da Gama apresentou — em entrevista coletiva hoje (10) da Vasco TV — seus três primeiros reforços para 2021: o meia Marquinhos Gabriel, o lateral Zeca e o zagueiro Ernando. Quem os anunciou foi o diretor-executivo de futebol, Alexandre Pássaro, que reforçou que a escolha pelo trio fez parte de um minucioso processo.

"Todas as negociações foram muito rápidas, mas com muita profundidade na escolha desses jogadores. Como eu disse em outras entrevistas, o Vasco não é mais um acaso, o Vasco tem um processo, motivos e justificativas agora no departamento de futebol. E esses três já são um resultado do processo que a gente já estava fazendo, olhando, entendendo do mercado quais seriam as opções para essas posições", declarou Pássaro, que prosseguiu:

"Esses jogadores nos atenderiam em qualquer cenário, permanecendo na Série A ou caindo para a Série B. Então a gente tem a certeza absoluta de que irão agregar muito ao Vasco, dar alegrias à torcida, vão trabalhar muito e, tudo que eventualmente faltar, vamos tratar de corrigir para que as coisas aconteçam da melhor maneira possível para o Vasco da Gama".

Zeca não tem preferência por lado

Conhecido por jogar nas duas laterais, Zeca garantiu não ter preferência por um setor, e que estará a disposição do técnico Marcelo Cabo para saber os planos do treinador:

"Estou muito feliz e motivo para jogar no Vasco, uma camisa gigante. Joga tanto na esquerda quanto na direita. Vou conversar com o professor. Primeiro treino será hoje (terça). Tenho certeza que voltaremos para Série A e buscaremos coisas grandes. Já joguei com Marquinhos [no Santos] e gosto de fazer um jogo apoiado".

Marquinhos Gabriel elogia força da torcida do Vasco

O meia Marquinhos Gabriel revelou que ainda precisará de um tempo para entrar em forma devido ao seu período de inatividade, mas demonstrou ansiedade para ter a torcida do Vasco a seu favor:

"Quero agradecer a oportunidade. Aceitei pela grandeza do Vasco e por tudo o que ele representa no futebol brasileiro. O ano é de voltar para a Série A. Quando eu vinha jogar aqui, o time adversário sentia a torcida. Agora, quero isso a meu favor. Já joguei nas três funções do meio de campo, mas ei a jogar centralizado e gosto muito. Depois ei a jogar mais aberto, buscando o jogador melhor posicionado".

Ernando destaca experiência e seu alto número de jogos

Aos 32 anos, Ernando chega para agregar experiência ao setor defensivo do Vasco. O zagueiro destacou suas características e o alto número de jogos pelos clubes que ou:

"Sou um zagueiro experiente, com agens por grandes clubes como Inter e Bahia. Comecei no Goiás, ei pelo Sport. Tive um alto número de jogos por todos esses clubes. Tenho uma agem bacana no futebol. Também jogo na lateral-direita. Não sou concorrente do Zequinha (risos), mas também já atuei pela esquerda. Sou um zagueiro de velocidade, tenho uma boa saída de jogo, boa jogada aérea. Por ter essa versatilidade, já joguei pelas laterais. Mas minha preferência é como zagueiro".

Vasco