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

Grêmio

Douglas Costa diz que permanecerá no Grêmio caso time caia para Série B

Douglas Costa ainda falou que o superávit não é suficiente para manter o clube na elite - EVERTON PEREIRA/O FOTOGRÁFICO/ESTADÃO CONTEÚDO
Douglas Costa ainda falou que o superávit não é suficiente para manter o clube na elite Imagem: EVERTON PEREIRA/O FOTOGRÁFICO/ESTADÃO CONTEÚDO

[email protected] (Redação)

01/11/2021 16h10

Com a derrota por 3 a 1 para o Palmeiras, neste domingo, em Porto Alegre, o Grêmio ou a ficar em situação ainda mais complicada e aumentou suas chances de rebaixamento. Referência técnica do time, Douglas Costa participou de uma live do canal Pilhado, do YouTube, nesta segunda-feira (1) e afirmou que não sairá do Tricolor em caso de queda para a Série B.

"Eu sou um cara que jamais jogo a toalha. Vou até o final. Tenho contrato de mais dois anos e é só isso que se a pela minha cabeça. Muitas pessoas falam outras coisas, mas eu sou daqui e vou continuar, independentemente do que acontecer. Até porque voltei por isso. Tenho mais dois anos de contrato. Não tem para onde correr", afirmou.

Revelado pelo Grêmio, o atacante ou uma década atuando no futebol europeu, em clubes como Shaktar Donetsk, Juventus e Bayern de Munique. De volta a Porto Alegre em maio deste ano, Douglas comentou sobre a situação que o clube está ando no Campeonato Brasileiro e afirmou que o elenco teve problemas para se adaptar a um estilo de jogo, muito por conta da troca de técnicos ao longo da temporada.

"Sendo sincero, nosso maior problema era não ter uma identidade de jogo. Agora, a gente criou uma, mas não consegue manter por dois tempos. Joga um tempo bem, depois dá uma apagada. Isso interferiu muito em nossa caminhada dentro do Brasileiro. Estamos confiantes no grupo, pois sabemos que nosso time não é ruim. Só estava um pouco desorganizado. A única coisa que a gente faz agora é correr contra o tempo, então não pode ficar se lamentando pelo jogo de ontem, sendo que quarta-feira já tem outro jogo importante", comentou.

Por fim, o camisa 10 disse que esperava estar disputando títulos quando chegou ao Tricolor, mas que os jogadores não podem deixar de lutar contra o rebaixamento.

"É claro que eu queria estar brigando por títulos, mas não vou jogar a toalha. Vou lutar para o time permanecer, para estar no Brasileirão no próximo ano. E que cheguem caras importantes também, porque o time não é feito só de superávit, de ar o ano bem financeiramente", finalizou.

Atualmente na 19ª colocação do Brasileirão, o Grêmio volta a entrar em campo já nesta quarta-feira, às 21h (de Brasília), em confronto com o Atlético-MG, no Mineirão.

Grêmio