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

Douglas investe na música e participa até de "turnê" e clipe como padre

Douglas virou padre em clipe sertanejo e antes pegou estrada de ônibus: Porto Alegre-Brasília - Divulgação/LGA Assessoria
Douglas virou padre em clipe sertanejo e antes pegou estrada de ônibus: Porto Alegre-Brasília Imagem: Divulgação/LGA Assessoria

Jeremias Wernek

Do UOL, em Porto Alegre

31/10/2020 04h00

Douglas, ex-Corinthians, Vasco e Grêmio, já escolheu o que fazer depois de anunciar aposentadoria do futebol. Ele entrou no ramo da música ao fazer parte de assessoria que tem como um dos clientes Joel Carlo, cantor sertanejo. Na nova jornada, o antigo meia participa de lives, já até viajou de ônibus até Brasília e foi padre em clipe musical.

Aos 38 anos, Douglas vive no Rio Grande do Sul e parou depois de deixar o Brasiliense. Chegou a ser sondado por clubes paraguaios e da Bolívia, mas resolveu se aposentar.

Durante a quarentena, o futuro — que agora já é presente — deu as caras na vida de Douglas. Ele participou de transmissões ao vivo na internet para arrecadar doações. O chamado "Churrasco & Modão" deu tão certo que as lives viraram frequentes, se tornaram projeto firme e houve apresentação em Santa Catarina e Brasília. A viagem até o Distrito Federal, aliás, foi de ônibus. Durante uma semana, Douglas pegou a estrada ao lado dos músicos e staff.

Douglas posa com Joel Carlo e Sandro Sotilli durante live "Churrasco e Modão" - Divulgação/LGA Assessoria - Divulgação/LGA Assessoria
Douglas ao lado de Joel Carlo e ex-atacante Sandro Sotilli durante edição de live sertaneja
Imagem: Divulgação/LGA Assessoria

"Tem um peso especial encerrar a carreira e já ir iniciando algo que gosto tanto como a música sertaneja. Estar agora no entretenimento me permite continuar levando alegrias para as pessoas e fãs, junto ao Joel, esse talento que iro tanto", resume Douglas.

Douglas não toca nenhum instrumento, arranha um pouco no vocal, mas tem estado ao lado de Joel Carlo desde março. É chamado de embaixador do projeto, por ajudar a divulgar a ideia e a buscar convidados — principalmente ex-jogadores de Grêmio e Inter. Já foram oito lives com mais de 70 toneladas de alimentos arrecadados.

"Uma amizade que nasceu em 2015 e só me trouxe momentos de alegria, estar ao lado de uma pessoa como o Douglas nesse momento tão importante da vida dele e aliado ao meu trabalho é fantástico, que possamos seguir pelo Brasil levando o Churrasco & Modão com muita música e alegria para as pessoas", comenta Carlo.

Padre Douglas

O mais novo clipe de Joel Carlo atualiza o currículo de Douglas. O ex-camisa 10 interpretou padre nas gravações, com direito à bênção e entrega das alianças aos noivos fictícios.

A música "Você Mudou" tem o casamento como uma das temáticas. E na brincadeira entre o cantor e Douglas, nasceu a ideia de botar o agora ex-jogador como padre.