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

Flamengo

Alheio a pichações, Bruno Henrique demonstra satisfação com trabalho do Fla

Bruno Henrique celebrou semana para trabalhar antes da partida contra o Athletico-PR, pelo Brasileiro - Alexandre Vidal / Flamengo
Bruno Henrique celebrou semana para trabalhar antes da partida contra o Athletico-PR, pelo Brasileiro Imagem: Alexandre Vidal / Flamengo

Do UOL, no Rio de Janeiro (RJ)

21/05/2019 11h08

A semana do Flamengo começou com protestos por parte dos torcedores, com pichações nos muros da Gávea, sede do Rubro-Negro, e do centro de treinamento Ninho do Urubu, tendo como um dos principais alvos o técnico Abel Braga. Ao ser questionado sobre o quanto esse tipo de movimentação afeta o elenco, o atacante Bruno Henrique, que concedeu entrevista coletiva hoje (21), afirmou desconhecer tais manifestações e demonstrou que o grupo está satisfeito com o trabalho que vem sendo realizado.

"Estou sabendo disso (pichações) agora, através de vocês (imprensa). Não fico em rede social para saber coisas de fora para dentro. Estou sabendo agora. Não consigo te responder porque sou um cara que procuro focar no meu trabalho. Quando chego ao clube, procuro me doar cada dia mais. Quando não estou no clube, procuro ficar com minha família, meu filho", disse ele, que ponderou que pressão dos torcedores por melhores resultados acontece em qualquer clube:

"Acho que isso acontece em qualquer lugar. Torcedor sempre quer ver o time vencer. Costumo dizer que, em 365 dias no ano, ninguém a 365 dias bem. Vejo aqui que sempre damos o nosso melhor, entramos para vencer todos os jogos, sabendo que futebol é sempre parelho. Dificuldade tem em todos os lugares, não só no Flamengo. Pressão é normal. Estamos felizes com o trabalho. É continuar nessa batida, consertar os erros e melhorar a cada dia o que estamos acertando".

Bruno Henrique salientou que os jogadores do Flamengo saíram do Independência, após a derrota para o Atlético-MG por 2 a 1 - time rubro-negro jogou com um a mais desde o fim do primeiro tempo, após expulsão de Elias - descontentes e não mediu palavras para descrever o sentimento: "puto".

"Todo mundo saiu bem chateado, saiu puto do jogo, pela partida que fizemos. Ainda não consegui pensar e nem digerir a derrota, mas todos sabem que jogar no Independência é muito difícil. (Jogadores do Atlético-MG) Conseguiram achar o gol no primeiro minuto do segundo tempo e fizeram linhas, que dificultaram bastante nossa entrada. A gente, mesmo com um homem a mais, não conseguiu entrar na defesa deles. Estavam com linhas bem próximas para sair no contra-ataque. Fomos superiores no segundo tempo, mas não conseguimos vencer", lamentou.

O atacante celebrou ainda o fato de o Flamengo não ter compromisso durante a semana, tendo mais tempo para a preparação visando a partida contra o Athletico-PR, pelo Campeonato Brasileiro, que acontece no domingo, no Maracanã.

"Semana boa. Temos de colocar em nossas cabeças que estamos fazendo o nosso melhor. Sempre que entramos em campo, entramos para dar o melhor. Semana cheia para trabalhar é importante porque, aqui no Brasil, se joga jogo atrás de jogo. Semana produtiva para todos nós. Professor também vai poder acertar onde estamos errando", garantiu.

Flamengo