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

Danilo revela dicas de Weverton na seleção e deixa futuro com 'Tia Leila'

Danilo, do Palmeiras, dá a sua primeira entrevista na seleção brasileira principal - Danilo Lavieri/UOL
Danilo, do Palmeiras, dá a sua primeira entrevista na seleção brasileira principal Imagem: Danilo Lavieri/UOL

Danilo Lavieri

Do UOL, em Seul (Coreia do Sul)

27/05/2022 05h47

Estreante na seleção brasileira, Danilo não escondeu a animação no seu primeiro treino sob o comando de Tite e definiu, em entrevista coletiva, a sua experiência até aqui em Seul, na Coreia do Sul, como "muito louca". O volante do Palmeiras teve em Weverton, seu companheiro de clube, o grande professor.

Os dois viajaram juntos desde São Paulo, se apresentaram junto na Ásia e trocam ideias desde o anúncio da convocação para os amistosos contra Coreia do Sul e Japão.

"Na viagem a gente já veio conversando. Ele veio explicando tudo, foi dando uns toques. Principalmente do trote, para caprichar no hino (risos). Mas é o que ele falou, que todo mundo é do bem, todo mundo dá risada e brinca e está sendo bom. O Marquinhos e o Neymar me deram mais um dia e vem mais uma música por aí", disse o volante.

Danilo ainda revelou ter conversado com Abel Ferreira antes de viajar para se apresentar à seleção. "Ele disse que nos treinos e nos jogos era para eu carregar a Família Palmeiras. Disse que uma parte da seleção que é verde. E eu disse para ele deixar comigo que eu vou dar o meu melhor", completou.

O jogador já era, antes de ser lembrado por Tite, um dos mais assediados pelo mercado europeu, especialmente do Campeonato Inglês. Agora, após a convocação, foi ainda mais valorizado. Apesar de todo o interesse no atleta, a presidente do Palmeiras, Leila Pereira, disse que não há possibilidade de negociação.

Danilo manteve o discurso padrão adotado pelos atletas e falou que seu futuro estava nas mãos dos seus empresários. A parte diferença desta vez é que ele citou a mandatária palmeirense com bom humor.

"Meus empresários cuidam de mim, sabem muito bem que eu deixei claro que eu não queria que eles falassem nada que não tivesse certo. Se eles vierem conversar comigo é porque tem proposta certa. Eu deixo para eles e para Tia Leila", finalizou.

A seleção treina na Coreia até o amistoso contra os donos da casa no próximo dia 2 de junho. No dia seguinte, viaja para Tóquio para enfrentar o Japão.