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

Viúva de Bob Saget fala pela primeira vez após a morte do ator

Kelly Rizzo compartilhou primeira imagem ao lado do marido, Bob Saget após sua morte - Reprodução/Instagram
Kelly Rizzo compartilhou primeira imagem ao lado do marido, Bob Saget após sua morte Imagem: Reprodução/Instagram

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

17/01/2022 12h12

Viúva de Bob Saget, encontrado morto na semana ada, Kelly Rizzo decidiu falar pela primeira vez sobre a morte do marido em sua conta no Instagram. A ex-companheira do ator, que foi enterrado na última sexta-feira, disse que precisou de um tempo para começar a entender o ocorrido.

"Meu doce marido… Estou tentando muito não pensar que me roubaram tempo com ele. No entanto, estou tentando pensar como fui sortuda de poder ter sido casada com o homem mais incrível do mundo", começou o desabafo, em uma postagem ao lado do marido.

"Fui eu que tive a oportunidade de embarcar nessa jornada louca com ele e ficar em sua vida por seis anos. Tivemos tempo para nos fazer muito felizes e de mudar nossas vidas para sempre. Tive a oportunidade de ser a pessoa que o ama e o ira. Ele merece todo o amor. Por que ele era incrível assim. Ele era amor. Se você esteve na vida dele, você sabia que ele te amava, pois ele não perdia uma oportunidade de falar", continuou.

Rizzo ainda agradeceu as homenagens que o ator vem recebendo. "Bob era uma força. Tenho certeza de que todos vocês, conhecendo-o ou não, ficaram maravilhados com a enorme demonstração de amor e homenagem a esse homem especial. Sou muito agradecida pela gentileza e apoio de entes queridos e estranhos. Todo mundo ama Bob e todo mundo quer ter certeza de que estou bem. E por isso, sou eternamente grata."

Morte do ator

Bob Saget foi encontrado morto em um quarto de hotel em Orlando, nos Estados Unidos, no último sábado (8). Ele tinha 65 anos.

Nascido em 1956, na Filadélfia, o ator ficou internacionalmente conhecido por interpretar Danny Tanner, na série "Três é Demais". Entretanto, ao contrário do personagem, que é tímido e recatado, Bob era conhecido por ser uma pessoa atrevida e audaciosa.

Ele também participou da série famosa: "How I Met Your Mother". Na sitcom exibida entre 2005 e 2014, Saget era a voz de Ted Mosby, que aparece contando histórias de sua juventude aos dois filhos.