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

Rafael Reis

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Artilheiro do Brasil na Europa, Arthur Cabral já persegue recorde na Suíça

Arthur Cabral tem média de 1 gol por partida no Campeonato Suíço - RvS.Media/Basile Barbey/Getty Images
Arthur Cabral tem média de 1 gol por partida no Campeonato Suíço Imagem: RvS.Media/Basile Barbey/Getty Images

16/11/2021 04h20

Receba os novos posts desta coluna no seu e-mail

Email inválido

Os torcedores do Basel que vão ao estádio acompanhar in loco as partidas do Campeonato Suíço normalmente têm duas expectativas: ver uma vitória do time de coração e pelo menos gol de Arthur Cabral. Na maioria das vezes, quando retornam para casa, eles não têm do que reclamar.

A equipe da Basileia lidera a competição, com um ponto de vantagem para o Zurique, e só perdeu um jogo em 13 rodadas desta temporada. Já o centroavante brasileiro ocupa com folga o topo da classificação dos artilheiros.

O ex-centroavante de Ceará e Palmeiras tem 13 gols em 13 partidas da primeira divisão suíça. Na soma de todos os torneios, seus números continuam sendo espetaculares: 24 jogos disputados em 2021/22 e 23 bolas empurradas para as redes.

Na atual temporada europeia, não existe um outro jogador brasileiro que esteja sendo tão letal quanto Arthur Cabral. E, mesmo entre os atacantes de outras nacionalidades, são poucos os que têm marcado nesse mesmo ritmo.

O sucesso pelo Basel até fez o atacante de 23 anos ser convocado para os compromissos da seleção na Data Fifa de outubro. A estreia oficial com a camisa amarelinha acabou não acontecendo, mas pelo menos o centroavante percebeu que está sendo observado por Tite.

Com média de um gol por partida nesta edição do Campeonato Suíço, Arthur Cabral já pode até começar a vislumbrar algo maior: um lugarzinho no livro de recordes históricos da competição.

Se mantiver sua frequência atual de bolas nas redes, o paraibano de Campina Grande irá terminar o torneio com 36 tentos, a segunda maior marca de um jogador na elite suíça em todos os tempos.

Apenas na temporada 1933/34, quando Leopold Kielholz, do Servette, comemorou 40 vezes, o artilheiro da primeira divisão do futebol helvético superou a marca da projeção atual de Arthur Cabral.

O brasileiro já foi o artilheiro da última edição do Suíço, ao lado do camaronês Jean-Pierre Nsame (Young Boys). Mas, na ocasião, balançou as redes em "apenas" 18 oportunidades, número que já está prestes a igualar e superar.

Nesta temporada, Arthur Cabral meteu quatro bolas nas redes em um jogo da liga nacional (contra o Servette), fez dois gols contra Lausanne e St. Gallen e também deixou sua marca em confrontos contra Sion, Lugano e Zurique.

Contratado por 4,4 milhões de euros (R$ 27,4 milhões, na cotação atual) pelo Basel, depois de uma agem pouco expressiva pelo Palmeiras, o brasileiro está em sua terceira temporada na Suíça e já acumula 61 tentos em 99 partidas pelo clube.

Hoje, o centroavante já vale bem mais. Na avaliação do "Transfermarkt", site especializado na cobertura do Mercado da Bola, o camisa 10 tem preço estimado de 15 milhões de euros (R$ 93,4 milhões).

Recentemente, o Bayer Leverkusen procurou os suíços para discutir a possibilidade de contratá-lo. Benfica, Porto, Southampton e Fiorentina são outros clubes que têm acompanhado de perto a evolução do jogador.