;(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();
})();
'Sex/Life': série picante é baseada em fatos; veja curiosidades
Sex/Life, série da Netflix com Adam Demos, Sarah Shahi e Mike Vogel
Divulgação/Netflix
De Splash, em Santos
06/07/2021 04h00
'Sex/Life' está quente no topo dos mais vistos da Netflix. Pelando, para ser mais preciso.
Pois sabia que a série, altamente "sensuellen", é baseada em acontecimentos reais? A produção é inspirada no livro "44 Chapters About four Men" (44 capítulos sobre 4 homens, em tradução livre), de B.B. Easton.
A série conta a história de Billie (Sarah Shahi) uma dona de casa, mãe de dois filhos e casada com Cooper (Mike Vogel), um investidor do mercado financeiro.
Entediada com sua vida sexual, ela revive seus tempos selvagens com um namorado do ado, Brad (Adam Demos).
Continua depois da publicidade
Dá uma olhada no trailer:
Splash te conta curiosidades sobre a autora e a produção. Dá uma olhada.
Mais de um 'Brad'
No livro, B.B. Easton fala sobre seus relacionamentos com "bad boys" antes de se casar com o marido, Ken. O tema de sua narrativa, portanto, não é apenas um cara.
Ela descreve seus amores como "um tatuador que se tornou marinheiro, um motociclista fora da lei, um punk em liberdade condicional e um baixista em uma banda de heavy metal". Eclética.
Diferença importante
A série tem uma diferença fundamental em relação ao livro (e à vida da escritora). B.B. Easton jura que nunca ficou com um ex-namorado enquanto esteve casada. A autora, porém, considera que esse é apenas um detalhe.
Continua depois da publicidade
Ela está vivenciando a mesma questão, mas com mais drama.
B.B. Easton, autora de '44 Chapters About 4 Men'
Arrependimento
O lance de ela ter deixado seu diário propositalmente para o marido ler, no entanto, é verdade. Mas ela não se orgulha disso. Em entrevista, à Oprah Daily, B.B. recomendou a outras mulheres serem sinceras com seus parceiros (ou parceiras) caso estejam insatisfeitas com a vida sexual.
Se você está tentando mudar o comportamento do seu marido, é melhor ter uma conversa. Se tivesse uma máquina do tempo, mudaria isso.
BB Easton, autora do romance que inspirou 'Sex/Life'
Imagem: Reprodução/Instagram
Experiência 'cômica'
A autora não participou da produção de "Sex/Life" e diz que assistir à série foi uma experiência "absolutamente cômica e surreal".
Continua depois da publicidade
Ver esses supermodelos lindos em uma tela, retratando eu e meu marido enquanto estávamos de moletom sentados em nosso sofá de 12 anos na quarentena... achamos muito engraçado.
Família da autora na série
Ken, marido da autora, e os dois filhos do casal aparecem na série, no episódio "107". Brad vê uma família carinhosa na lanchonete, que é interpretada pela família de B.B. Easton.
Sobre os atores super sexies: Sarah Shahi (Billie) e Adam Demos (Brad) são namorados na vida real. Eles se conheceram no trailer de maquiagem e se apaixonaram enquanto gravavam a série.
Em um post recente no Instagram, Adam publicou uma foto com ela e se declarou fofamente:
Não sei exatamente como duas pessoas de lados opostos do mundo poderiam ter mais coisas em comum.
Continua depois da publicidade
Nu frontal
No tão comentado nu frontal de Brad, é realmente Adam Demos em toda sua "glória", se é que você me entende —nada de dublê. Ele diz que não se preocupou em relação à cena.
Adam Demos em cena de nu frontal, que fez barulho redes sociais afora
Imagem: Reprodução/Netflix
Eu estava tranquilo em relação a isso porque eu li o roteiro e sabia onde estava me metendo desde o começo.
Aulas de música
Adam Demos não cantava e nem sabia tocar violão antes de interpretar Brad. Ele fez aulas antes de começar a gravar.
Experiência própria
Margaret Odette, que vive a melhor amiga de Billie, Sasha, construiu sua personagem a partir de sua própria experiência de vida.
Assim como Sasha, ela teve uma exemplar carreira acadêmica. Se formou na Brown University e fez mestrado na Universidade de Nova York.
ID: {{comments.info.id}}
URL: {{comments.info.url}}
Ocorreu um erro ao carregar os comentários.
Por favor, tente novamente mais tarde.
{{comments.total}} Comentário
{{comments.total}} Comentários
Seja o primeiro a comentar
Essa discussão está encerrada
Não é possivel enviar novos comentários.
Essa área é exclusiva para você, , ler e comentar.
Só s do UOL podem comentar
Ainda não é ? Assine já.
Se você já é do UOL, faça seu .
O autor da mensagem, e não o UOL, é o responsável pelo comentário. Reserve um tempo para ler as Regras de Uso para comentários.