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

Breno Lopes: 'O Abel tem um privilégio de treinar um elenco tão forte'

Breno Lopes vibra após fazer o segundo gol do Palmeiras no clássico contra o Santos, no Allianz Parque, Brasileirão 2021 - Marcello Zambrana/Marcello Zambrana/AGIF
Breno Lopes vibra após fazer o segundo gol do Palmeiras no clássico contra o Santos, no Allianz Parque, Brasileirão 2021 Imagem: Marcello Zambrana/Marcello Zambrana/AGIF

Colaboração para o UOL, em São Paulo

19/07/2021 14h41

Artilheiro do Palmeiras no Campeonato Brasileiro com 5 gols, Breno Lopes celebrou o bom momento que atravessa no clube e destacou que não se sente dono da posição, já que o treinador Abel Ferreira deixa claro aos seus atletas que não há titulares no time. O jogador avaliou, ainda, que o português é privilegiado por trabalhar com um elenco de tanta qualidade.

"O Abel sempre diz que não temos titulares. Ele coloca em campo porque confia e, a cada jogo, é uma formação porque ele acredita em todo mundo, todos têm potencial. Ninguém quer ficar no banco, tem a briga interna nos treinamentos, mas nos respeitamos muito. Quem entra, a gente torce pelo companheiro. Isso tem sido bacana e por isso conseguimos jogar. Todo mundo que entra tem condições", disse Breno Lopes em entrevista ao Jogo Aberto, da TV Band, hoje.

"A gente tem um elenco muito qualificado, três ou quatro jogadores por posição. São jogadores que correspondem em campo à mesma altura. O Abel tem esse privilégio de treinar um elenco tão forte", continuou.

Libertadores

Breno Lopes projetou um jogo difícil diante da Universidad Católica na volta das oitavas de final da Copa Libertadores da América - na ida, o Palmeiras venceu por 1 a 0 no Chile. O atacante elogiou o time adversário e pediu respeito para avançar na competição internacional.

"Tem que respeitar muito a Universidad Católica. Foi um jogo muito difícil no Chile. Um time de muita força, garra. Tivemos dificuldade. Temos que fazer o que estamos fazendo: respeitar o adversário e buscar a vitória para conseguir nosso objetivo", complementou

Começo difícil

O jogador itiu que teve um começo complicado no time alviverde, com dificuldades para adaptação, mas avaliou que, após se adaptar ao estilo de jogo de Abel Ferreira, tem evoluído.

"Meu começo no Palmeiras foi complicado, adaptação, demorei para engrenar, me adaptar ao estilo de jogo. Hoje estou muito feliz com as oportunidades e por ser o artilheiro do clube. Tem vários jogadores que eu sempre irei do meu lado: Willian, Luiz Adriano, Rony. Espero continuar fazendo meu trabalho. Estou muito feliz aqui", finalizou.