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

Atriz de 'The Boys' diz que sofreu ataque racista: 'Isso precisa parar'

Karen Fukuhara é conhecida como a Kimiyko de "The Boys" - Divulgação/Amazon
Karen Fukuhara é conhecida como a Kimiyko de 'The Boys' Imagem: Divulgação/Amazon

Colaboração para Splash

17/03/2022 00h05

A atriz norte-americana Karen Fukuhara, 30 anos, fez um desabafo em suas redes sociais na noite de hoje. Ela revelou ter sofrido uma agressão gratuita, possivelmente de cunho racista, enquanto caminhava pela rua.

"Hoje fui acertada na cabeça por um homem. Estou fisicamente bem, mas essa droga precisa parar. Nós — mulheres, asiáticas e idosos — precisamos da sua ajuda", iniciou Karen, em um texto publicado em seu Instagram.

"Eu estava caminhando rumo a uma cafeteria para tomar um café e um homem bateu na parte de trás da minha cabeça. Veio do nada, não fizemos contato visual antes. Eu não estava fazendo nada fora do comum. Ele veio de surpresa e meu chapéu foi arremessado", relatou a atriz de origem asiática.

"Na hora em que olhei para trás, ele estava longe de mim (deve ter continuado andando depois de me bater). Pensei em confrontá-lo, mas ele começou a andar em minha direção e achei que não valia a pena o risco. Após alguns segundos de nos encararmos e ele me xingar, ele foi embora", acrescentou.

"No fim, acho que tive sorte. Ele poderia ter voltado para me bater novamente, podia ter uma arma. O choque dessa experiência me fez pensar em ter aulas de defesa pessoal. Mas por que nós, vítimas, precisamos considerar essa possibilidade?", queixou-se Fukuhara.

"Que satisfação esses agressores tiram de bater em mulheres, em asiáticos, em idosos? Eles precisam ser responsabilizados. O que podemos fazer, como uma comunidade, para impedir esses crimes horríveis?", desabafou ainda a estrela, conhecida por seus trabalhos na série "The Boys" e no filme "Esquadrão Suicida".