寫(xiě)給設(shè)計(jì)師看的 Framer JS —— 基礎(chǔ)物理交互(二)

  1. 本文所有圖文(除了網(wǎng)頁(yè)截圖)皆為原創(chuàng)洪乍,版權(quán)完全歸我本人所有眯杏。如有未經(jīng)允許的「任何部分或全部」的轉(zhuǎn)載、抄襲典尾、盜用役拴,全部默認(rèn)為:您已同意并接受給我本人 3 萬(wàn)元。本文「發(fā)布」時(shí)間:2015 年 11 月 08 號(hào) 16:01钾埂。
  2. 本系列文章將直接從實(shí)踐角度出發(fā)河闰,本著「寫(xiě)完一篇文章再砍掉一半」的原則科平,不必要的解釋和說(shuō)明沒(méi)有展開(kāi)。
  3. 閱讀前請(qǐng)精讀 Framer JS 官網(wǎng)的 Learn 并在閱讀中配合官方文檔實(shí)時(shí)查閱姜性。
  4. 本系列文章將不定期連載瞪慧,最終制作成電子書(shū),名為《寫(xiě)給設(shè)計(jì)師看的 Framer JS》
  5. 需要體驗(yàn)效果就請(qǐng)點(diǎn)擊鏈接部念,?支持任何基于 Webkit 的瀏覽器弃酌,不區(qū)分平臺(tái)和設(shè)備。

基礎(chǔ)物理交互(一)中儡炼,點(diǎn)擊文中鏈接進(jìn)行交互時(shí)可以發(fā)現(xiàn):它只能點(diǎn)擊一次妓湘,無(wú)法通過(guò)點(diǎn)擊變化后的圖形回到原樣。

這是因?yàn)槲覀儧](méi)有定義之后的操作乌询,要定義下一次的操作結(jié)果很容易榜贴,在上面交互事件的基礎(chǔ)上按部就班再來(lái)一次即可,但是如果一個(gè)交互是來(lái)回變化的妹田,難道我們要定義無(wú)數(shù)次的操作結(jié)果么唬党?

解決這個(gè)問(wèn)題要理解它背后的原理。假設(shè)一個(gè)對(duì)象的交互結(jié)果有兩種:0 和 1鬼佣,我們將 0 和 1 看作兩種狀態(tài)驶拱,那么設(shè)定一次操作讓其在這兩種狀態(tài)之間切換,即可解決上述問(wèn)題晶衷。

再進(jìn)一步想,所有需要用到多次的狀態(tài)(交互結(jié)果)房铭,都應(yīng)該定義好之后按實(shí)際場(chǎng)景分配使用驻龟,這樣不僅讓效率更高温眉、代碼更簡(jiǎn)潔缸匪,而且有利于整理思路和邏輯關(guān)系。

綜上所述类溢,當(dāng)交互結(jié)果需要在不同場(chǎng)景使用到多次時(shí)凌蔬,都應(yīng)該使用 states 去實(shí)現(xiàn)。在 Framer 中為圖層添加狀態(tài)并指定變化時(shí)間闯冷、曲線砂心、延時(shí)等:

layer.states.add
    state1:
        x: 0
        y: 0
        scale: 1
    state2:
        x: 200
        y: 200
        scale: 1.5
    state3:
        x: 400
        y: 400
        scale: 2
    ...
layer.states.animationOptions = 
    curve: "ease"
    time: 0.5
    delay: 0.2

回到一開(kāi)始的例子,通過(guò) states 讓圖層實(shí)現(xiàn)循環(huán)交互:

# add states for layer
layer.states.add
    rounded:
        borderRadius: 15
        scale: 1.5
        rotation: 180
layer.states.animationOptions = 
    time: 0.5
    curve: "ease"

# set click event
layer.on Events.Click, ->
    layer.states.next ["rounded", "default"]

為之前 “1” 的狀態(tài)起個(gè)名字叫 rounded蛇耀,它的參數(shù)與之前一模一樣辩诞,唯一的不同是:它現(xiàn)在不僅是一種交互結(jié)果,同時(shí)還是一個(gè)可調(diào)用的 state纺涤。

layer.states.next 的語(yǔ)義是按照設(shè)定好的交互事件切換狀態(tài)列表译暂,["rounded", "default"] 就是它的狀態(tài)列表抠忘,相當(dāng)于兩首歌列表循環(huán)。
default 就是 layer 的初始狀態(tài)外永,F(xiàn)ramer 默認(rèn)最開(kāi)始 layer 的屬性為 default崎脉,無(wú)需我們定義。

狀態(tài)切換的交互

親自體驗(yàn):http://share.framerjs.com/h9zs7epwgz0p/


以 twitter 的發(fā)布交互進(jìn)入實(shí)戰(zhàn)伯顶,準(zhǔn)備兩張去掉狀態(tài)欄的截圖囚灼,去網(wǎng)上下載一個(gè) iOS 9 的 UI Kit 找到狀態(tài)欄素材,如圖所示:

?所需截圖

參照第一篇文章進(jìn)行上傳操作:

?有序整理 groups 列表

?xy 坐標(biāo)設(shè)為 0

完成這個(gè)效果所需的代碼:

$ = Framer.Importer.load "imported/Untitled 2"

# default states
Utils.globalLayers $
bg = new BackgroundLayer backgroundColor: "black"
post.y = 1334

# create post action respond area
postaction = new Layer
    width: 88
    height: 88
    x: 750 - 88
    y: 40
    superLayer: notific
    backgroundColor: false

# post action events
postaction.on Events.Click, ->

    # notific page animate
    notific.animate
        properties:
            opacity: 0.8
            scale: 0.93
        time: 0.4
        curve: "ease"

    # post page animate
    post.animate
        properties:
            y: 0
        time: 0.4
        curve: "ease"

# create cancel action respond area
cancel = new Layer
    width: 88
    height: 88
    x: 750 - 88
    y: 40
    superLayer: post
    backgroundColor: false

# cancel action events
cancel.on Events.Click, ->

    post.animate
        properties:
            y: 1334
        time: 0.4
        curve: "ease"
    
    notific.animate
        properties:
            opacity: 1
            scale: 1
        time: 0.4
        curve: "ease"

實(shí)際效果(注意看狀態(tài)欄祭衩,因?yàn)樗奈恢檬枪潭ú蛔兊脑钐澹市枰匦聹?zhǔn)備素材):

twitter 發(fā)布交互

親自體驗(yàn):http://share.framerjs.com/lyoudbcusfo8/

新建 postactioncancel 這兩個(gè)圖層用來(lái)設(shè)置操作熱區(qū),至于 superLayer 的使用請(qǐng)查閱文檔掐暮,非常簡(jiǎn)單赃春,不再贅述。

下一篇文章講解如何進(jìn)行滑動(dòng)交互劫乱。

歡迎關(guān)注我的 dribbble:https://dribbble.com/jiaxinchen

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末织中,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子衷戈,更是在濱河造成了極大的恐慌狭吼,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件殖妇,死亡現(xiàn)場(chǎng)離奇詭異刁笙,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)谦趣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)疲吸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人前鹅,你說(shuō)我怎么就攤上這事摘悴。” “怎么了舰绘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵蹂喻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我捂寿,道長(zhǎng)口四,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任秦陋,我火速辦了婚禮蔓彩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己赤嚼,他們只是感情好大磺,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著探膊,像睡著了一般杠愧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上逞壁,一...
    開(kāi)封第一講書(shū)人閱讀 52,584評(píng)論 1 312
  • 那天流济,我揣著相機(jī)與錄音,去河邊找鬼腌闯。 笑死绳瘟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的姿骏。 我是一名探鬼主播糖声,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼分瘦!你這毒婦竟也來(lái)了蘸泻?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嘲玫,失蹤者是張志新(化名)和其女友劉穎悦施,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體去团,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抡诞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了土陪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昼汗。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鬼雀,靈堂內(nèi)的尸體忽然破棺而出顷窒,到底是詐尸還是另有隱情,我是刑警寧澤取刃,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布蹋肮,位于F島的核電站,受9級(jí)特大地震影響璧疗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜馁龟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一崩侠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坷檩,春花似錦却音、人聲如沸改抡。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)阿纤。三九已至,卻和暖如春夷陋,著一層夾襖步出監(jiān)牢的瞬間欠拾,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工骗绕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留藐窄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓酬土,卻偏偏與公主長(zhǎng)得像荆忍,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撤缴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 本文所有圖文(除了網(wǎng)頁(yè)截圖)皆為原創(chuàng)刹枉,版權(quán)完全歸我本人所有。如有未經(jīng)允許的「任何部分或全部」的轉(zhuǎn)載屈呕、抄襲嘶卧、盜用,全...
    陳加新閱讀 2,338評(píng)論 1 14
  • 戳這里查看原文 練習(xí)素材:Sketch文件 在Google, Facebook, Twitter, Dropbox...
    凌樂(lè)歌閱讀 1,290評(píng)論 3 5
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果凉袱,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜芥吟,今天將帶大家一窺iOS動(dòng)畫(huà)全貌。在這里你可以看...
    F麥子閱讀 5,116評(píng)論 5 13
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果专甩,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜钟鸵,今天將帶大家一窺ios動(dòng)畫(huà)全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,515評(píng)論 6 30
  • 媽媽的故事 自從跟媽媽關(guān)系緩和后涤躲,經(jīng)常陪她聊天棺耍,聊她的小時(shí)候,她的結(jié)婚种樱,她的婚姻生活蒙袍。這才近距離的了解她,理解她...
    艷如驕陽(yáng)閱讀 2,633評(píng)論 0 0