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

João Kléber conta como Roberto Carlos reagiu no dia da morte de Chacrinha

De Splash, no Rio

18/09/2021 04h00

João Kleber relembrou o início da carreira ao lado de Chacrinha em entrevista no "OtaLab" desta semana. No papo com Otaviano Costa, o apresentador falou da primeira experiência na TV aberta, substituindo o Velho Guerreiro, que sofria de problemas de saúde. E resgatou uma história envolvendo Roberto Carlos, no dia do enterro de Abelardo Barbosa.

Roberto chegou com a Myriam Rios, o corpo do Chacrinha ainda estava no quarto, deitado na cama. Ele ficou aos pés do Chacrinha, conversando, agradecendo ao Chacrinha, que foi importante na carreira dele. João Kleber, no "OtaLab"

jk - Reprodução - Reprodução
João Kleber foi um dos convidados de Otaviano Costa no "OtaLab" desta semana
Imagem: Reprodução

Nesse mesmo dia, segundo João, ele presenciou outra cena emocionante:

Boni saiu do lavabo da casa do Chacrinha com lágrimas nos olhos. Esse dia foi terrível. A gente sabia que uma hora ele ia, porque ele estava com câncer, uma doença terrível. Mas a força que ele tinha era inspiradora.

'Huck tem um desafio no Domingão'

Durante o programa, João usou os mais de 30 anos de experiência na TV aberta para comentar as mudanças que aconteceram recentemente na TV Globo. Segundo o apresentador, Luciano Huck tem um desafio maior que Marcos Mion: "Não é fácil tirar a marca de 30 anos do 'Domingão', mas o Luciano está muito bem. Ele vai conquistando um outro público".

E teve mais!

Além de João Kleber, Otaviano recebeu Papatinho para um bate-papo sobre os bastidores do mundo da música. O produtor relembrou o dia em que conheceu Snoop Dogg, nos Estados Unidos: "A diária do estúdio virou uma festa", contou Papato, que lembrou também de uma festa de Anitta, em que fechou uma parceria com Will.I.Am, do Black Eyed Peas.

Você pode assistir a toda a programação do Canal UOL aqui.