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

Danni Suzuki explica por que saiu da Globo: 'Jogada de um lado para outro'

Danni Suzuki perdeu papel principal da novela "Sol Nascente" - Reprodução/Instagram
Danni Suzuki perdeu papel principal da novela 'Sol Nascente' Imagem: Reprodução/Instagram

Colaboração para Splash

01/12/2021 13h17

A atriz Danni Suzuki, 44 anos, é uma das atrações da edição desta semana do programa "Salada Sato", apresentado por Sabrina Sato, 40, em seu canal oficial no YouTube.

No episódio, que estreia hoje às 20h, a eterna Miyuki de "Malhação" (2003-2005) discutiu preconceito amarelo com Sabrina e seus demais convidados e falou sobre um assunto que até hoje dá o que falar: sua saída da TV Globo, em 2016.

Danni itiu que a decisão de deixar a emissora tem tudo a ver com o fato de ter perdido para Giovanna Antonelli o papel principal da novela "Sol Nascente", produzida e exibida no mesmo ano.

"Achei desrespeitoso na época pelo fato de a novela ter sido escrita para mim. Era a história da minha família, baseada na minha vida. Senti que não tinha mais espaço. Talvez o canal não via as coisas como eu via", desabafou a atriz.

"Resolvi sair porque senti que a minha vida iria ser isso ali, iria ficar sendo jogada de um lado para o outro... Tenho uma gigante gratidão, foi minha casa durante muitos anos, mas para eu crescer profissionalmente precisei sair", resume.

Segundo Danni, o pouco espaço conferido na televisão para atores de origem asiática é um problema que ela e outros intérpretes enfrentam desde sempre.

"Minha família dizia 'Para com essa história de ser atriz, não tem japonês na televisão, vai fazer outra coisa'. Durante esses anos foi uma luta sempre, inclusive para me manter. Sempre fui encorajada a desistir e até hoje escuto esse tipo coisa, por mais que eu tenha tido uma carreira de 20 anos na Globo", queixa-se.

O novo episódio do "Salada Sato" conta também com a participação do escritor Ricky Hiraoka, e da empreendedora Iana Chan, da atriz Bruna Aiiso e do diretor de eventos Mauro Sousa, filho do cartunista Maurício de Sousa.