写给设计师看的 Framer JS —— 基础物理交互(一)

  1. 本文所有图文(除了网页截图)皆为原创,版权完全归我本人所有。如有未经允许的「任何部分或全部」的转载、抄袭、盗用,全部默认为:您已同意并接受给我本人 3 万元。本文「发布」时间:2015 年 11 月 06 号 22:22。
  2. 本系列文章将直接从实践角度出发,本着「写完一篇文章再砍掉一半」的原则,不必要的解释和说明没有展开。
  3. 阅读前请精读 Framer JS 官网的 Learn 并在阅读中配合官方文档实时查阅。
  4. 本系列文章将不定期连载,最终制作成电子书,名为《写给设计师看的 Framer JS》
  5. 需要体验效果就请点击链接,�支持任何基于 Webkit 的浏览器,不区分平台和设备。

设计师开始制作原型的基本交互,也是现实世界基础的物理交互主要有:

  • 点击(Tap)
  • 滑动(Scroll)
  • 按住(Hold)
  • 轻扫(Swipe)
  • 拖拽(Drag)

1. 点击

在 Framer Studio 中与点击相对应的是 Click,鉴于 Framer Studio 并不只是为手机制作原型的工具(可在任何基于 Webkit 的浏览器上进行交互),使用 Click 来表示点击显然是更加合理的。

当我们要完整走一次「点击交互」的时候,需要这些东西:

  1. 交互的图层(对象)
  2. 交互事件
  3. 交互的结果

在 Framer Studio 中它是这样的:

# step 1
layer = new Layer
    width: 200
    height: 200
    borderRadius: 100
    backgroundColor: "#39f"

layer.center()

# step 2
layer.on Events.Click, ->
    # step 3
    layer.animate
        properties: 
            borderRadius: 15
            scale: 1.5
            rotation: 180
        time: 0.5
        curve: "ease"
  • Step 1:新建一个图层,设定好宽高度、圆角大小和颜色
  • Step 2:给图层 layer 新建一个点击事件
  • Step 3:设定点击事件的结果

xxx.on Events.Click, -> 是固定写法,区分大小写。->Function,中文意思是「函数」。我们用经典的 y = f(x) 来解释:

在一个变化过程中,有两个变量 x、y,如果给定一个 x,相应的就确定唯一的一个 y,那么就称 y 是 x 的函数,其中 x 是自变量,y 是因变量

回到我们的代码(牢记 Framer 以缩进来表示继承关系),Step 2 下、-> 前的一行代码就是自变量 x,-> 后Step 3 下的所有代码就是因变量 y。故 layerClick 事件就是 x,因 Click 而引起 layer 的一系列变化就是 y。layer.animate 是告诉 Framer 对 layer 做一些动效,properties 告诉它具体做哪些性质的变化,即:

  1. 圆角大小变为 15
  2. 缩放 1.5 倍
  3. 旋转 180 度
  4. 为以上三个变化设定时间为 0.5 秒
  5. 变化曲线为 “ease”

最终效果:

GIF 帧数问题无法还原实际顺滑效果

亲自体验:http://share.framerjs.com/y8nr4jrg6cg1/

疑问来了,为什么要多输入不必要的代码呢?为啥不可以这样:

layer.on Events.Click, ->
    layer.borderRadius = 15
    layer.scale = 1.5
    layer.rotation = 180

原因是:这样的变化是没有过程的。上面的代码没有通过 animate 去实现变化,故其不可设定变化时间、变化曲线、变化次数等等。也就是说,它是立即生效的,我们不想要没有自然过渡的动效。这是上面代码的呈现效果:

没有过渡的变化

亲自体验:http://share.framerjs.com/npm8moz0w4ok/

下一篇讲解如何实现更加复杂、更加符合真实场景的点击交互效果。

欢迎关注我的 dribbble:https://dribbble.com/Acmenyz

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,066评论 5 13
  • 本文所有图文(除了网页截图)皆为原创,版权完全归我本人所有。如有未经允许的「任何部分或全部」的转载、抄袭、盗用,全...
    陈加新阅读 1,088评论 1 5
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,421评论 6 30
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,079评论 25 707
  • 十月是个离开季,一部分跟季节有关,因为树叶脱离大树,变得枯萎萧条,最后成了泥土里的一部分。一部分和人有关,因为人和...
    玫瑰西海岸阅读 286评论 0 1