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

São-paulino, Dani Alves cita Morumbi frio e vê Brasil atrasado no futebol

Daniel Alves reclamou do comportamento da torcida no Morumbi -  Pedro Martins / MoWA Press
Daniel Alves reclamou do comportamento da torcida no Morumbi Imagem: Pedro Martins / MoWA Press

Danilo Lavieri, Marcel Rizzo e Pedro Lopes

Do UOL, em Salvador

16/06/2019 14h41

Aos 36 anos, Dani Alves não tem receio de dizer para qual clube torce: o São Paulo. E talvez com essa ligação de infância possa avaliar com propriedade a reação fria dos torcedores na estreia da seleção brasileira na Copa América, os 3 a 0 sobre a Bolívia na sexta (14), dentro do Morumbi. Muito silêncio e vaias no intervalo, com 0 a 0 no placar, chatearam alguns jogadores.

"Sinceramente eu sou do povo, sempre vou pesar para que o povo esteja no estádio. São coisas que fogem das nossas mãos, não controlamos valores de ingressos, quem vai no jogo. Não sou dono da verdade, falei da minha sensação, de quando a gente joga no Morumbi, no geral, não em São Paulo. De repente porque o estádio fica distante a torcida da gente, na arena [Corinthians] foi um apoio maior. Foi o que senti no momento, sou verdadeiro, desculpem. Até amigos que estavam no jogo tiveram essa sensação também", disse Dani Alves neste domingo (16) já em Salvador, onde na terça (18) o Brasil vai encarar a Venezuela.

O lateral-direito está na seleção brasileira desde outubro de 2006, quase 13 anos portanto. É o mais experiente de um grupo que tenta mesclar alguns jovens a veteranos da Copa do Mundo de 2018 e a tarja de capitão que herdou de Neymar, que não está na Copa América devido a lesão, faz Dani Alves se sentir responsável por cobrar fidelidade da torcida à seleção mesmo tendo predileção maior por seus clubes.

" Futebol aqui [no Brasil] é religião e as pessoas são doutrinadas a seguir seus clubes, não sua seleção. Tipo se tem um jogador de seu time ele gosta, se não levam esse sentimento de não gostar. Podemos respeitar, mas não entender. Não estamos ali representando clubes, estamos representando a seleção brasileira, mas é difícil entrar na cabeça das pessoas", disse Dani Alves.

Claro que Dani concorda que vaias e silêncio também podem estar relacionados a atuações mais difíceis da seleção contra rivais sul-americanos, que evoluíram e, para o lateral, o Brasil não acompanhou em alguns aspectos.

"Acredito que, no geral, o futebol foi evoluindo muito, equipes evoluindo muito. O Brasil ficou um pouco atrás nessa evolução. É uma pena tanto tempo sem fazer uma final de Copa América, mas você vê que a gente oscila muito. Conseguimos fazer grandes Eliminatórias, mas Copa América não. É uma grande chance de se reinventar, melhorar tudo isso para voltar. Continuamos sendo uma das grandes seleções do continente, precisamos voltar a desfrutar desse momento. Com competência, vencer essa competição, voltar a escrever uma história bonita", disse o lateral-direito.