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

Lucien Laviscount: Quem é o Alfie de 'Emily in Paris', fenômeno da Netflix

O ator britânico Lucien Laviscount - Reprodução/Instagram
O ator britânico Lucien Laviscount Imagem: Reprodução/Instagram

De Splash, em São Paulo

23/12/2022 13h49Atualizada em 23/12/2022 13h49

A terceira temporada da série, estrelada por Lily Collins, estreou na plataforma de streaming na quarta (21), mas quem roubou a cena foi Alfie, um dos interesses amorosos da protagonista, que continua entre os assuntos mais comentados do Twitter na manhã de hoje, elogiado principalmente por sua beleza.

O personagem é interpretado pelo ator britânico Lucien Laviscount, de 30 anos, que já tinha aparecido na última temporada como colega nas aulas de francês de Emily, se envolvendo romanticamente com ela em meio à crise na sua relação com Gabriel, formando um "quadrado" amoroso completado por Camille, amiga da norte-americana e ex do chef francês.

Laviscount já tinha ganhado destaque por séries adolescentes como "Scream Queens", apesar de ter números discretos nas redes sociais antes de ser apresentado ao público no fenômeno da Netflix.

No dia em que a segunda temporada da série estreou, em 22 de dezembro, ele tinha 184 mil seguidores no Instagram. Hoje, o número já foi catapultado para 1,1 milhão.

lucien lily - Reprodução/Instagram - Reprodução/Instagram
Lucien e Lily Collins em cena da terceira temporada de "Emily in Paris"
Imagem: Reprodução/Instagram

"Ex-BBB"

O ator tem uma trajetória curiosa. Em 2011, com apenas 19 anos, ele participou do "Celebrity Big Brother", na Inglaterra, e ficou em quinto lugar.

Em 2012, ele se lançou como cantor e lançou um single chamado "Dance With You" com o rapper americano MANN.

Em 2014, Lucien foi protagonista da série "Supernatural: Bloodlines", derivada da série "Supernatural". A partir de 2017, foi um dos protagonistas da série "Snatch".

Agora, alçado ao posto de galã por fãs de "Emily in Paris", Lucien estampa revistas de moda, frequenta eventos de marcas de luxo — como Boss e Dior — e ainda se aventura no mundo dos drinks, participando de campanhas para marcas de uísque e tequila.

lucien - Reprodução/Instagram - Reprodução/Instagram
Lucien na premiere da terceira temporada de "Emily in Paris"
Imagem: Reprodução/Instagram