专栏名称: 点融设计中心DDC
这里有设计、研究、产品等领域的经验积累和行业探讨。
目录
相关文章推荐
哲学园  ·  自恋,这个时代最大的统治术 ·  11 小时前  
厦门日报  ·  DeepSeek,重磅宣布! ·  昨天  
厦门日报  ·  突然爆发!飙涨! ·  昨天  
厦门日报  ·  已确认:全部关闭!正式退出中国市场 ·  2 天前  
51好读  ›  专栏  ›  点融设计中心DDC

Framer设计:Apple TV 触控交互效果

点融设计中心DDC  · 公众号  ·  · 2018-06-01 18:39

正文

2017年9月13日,苹果举办的秋季新品发布会发布了Apple TV 4K。重新设计的界面中 tvOS UI 导航采用焦点模型,用户使用遥控器在界面元素间移动,例如电影海报、应用或按钮,通过点按选中某个元素。导航中的当前项是选中态,如果一个元素被选中聚焦,即使远看也该一目了然。




接下来我们将使用 Framer 模仿实现这种效果。

下面就我们做好的效果。


原型链接:https://framer.cloud/lWcHj


那么,具体是如何通过 Framer 实现的呢?


第一步 设计

在几次改版后 Framer 将界面分为 “Design 设计 “Code 代码 两个部分,设计师可以在设计界面中像使用 Sketch 一样进行设计并导出设计页面。笔者现在使用的是 v120 版本。

基于视差效果,需要设计几个层来满足视觉效果。 主要的视觉层为:

1. 反光面

2. 前景

3. 中间层

4. 底色(遮照层)



为了方便控制,需要再做个不可见的图层作为容器。

设计好后图层需要像下图这样排列。



因为我们不需要在固定的设备中使用,所以没有画板;

容器层也就是图中的“superLayer” 背景色为淡蓝色方便观看;

卡片“card” 是我们的底色遮照层颜色为红色,父级为容器层;

所有的元素按照前后关系依次排列下来(反光面、前景、邦德剪影、背景);

glow为反光层,可先随意设置一个颜色。

这些设置好后,基本上设计部分就OK啦,下面进入Code界面编写逻辑。

第二步 代码设计样式

我们需要将图层重新命名并在列表后方点选激活,这样做我们就可以在代码界面中用代码的力量控制这些图层了。



首先设置一个背景颜色:

bg = new BackgroundLayer

backgroundColor:"rgba(237,250,255,1)"

z:-1

我们不希望显示效果会超出卡片的范围,设置卡片和容器层剪切其子项,这样相当于遮照的效果:

superLayer.clip = true

card.clip = true

这里"glow"为反光层,现在的framer还并不支持图层径向渐变功能,所以需要在代码中设置CSS属性来达到效果(也可以用圆加高斯模糊调整出差不多的效果)。

glow.style = "background":"radial-gradient( rgba(255,255,255,1) 0%,         rgba(255,255,255,0) 60%)"

设置容器层superLayer在显示设备里居中并设置透视属性:

superLayer.x = Align.center

superLayer.y = Align.center

superLayer.perspective = 100

.perspective 是达成视差效果的重点,它是CSS3属性,当元素定义 perspective属性时,子元素会获得透视效果;所以将容器层superLayer定义此属性。

调整下卡片和文字在容器层里居中:

card.x = Align.center

card.y = Align.center

label.x = Align.center(-5)

label.y = Align.center(150)

上面这些设置好后你的代码看起来会是下图这样子。


第三步 逻辑

现在我们需要设置,什么时候出现透视效果,这里使用的是当鼠标在屏幕背景中移动就会开始变化,所以我们需要用鼠标移动事件“.on Events.TouchMove, (event, layer) → ” 它的简写形式是“ .onTouchMove →”。

事件最开始需要一个鼠标距离卡片中心的距离的位置参数:








请到「今天看啥」查看全文