06-Framer基础-dragging拖动

Dosen原创

开始学习Framerjs,边学边翻译,也加了一些我学习过程中的理解。写下来留作以后查阅,看官如果发现有地方写的不对请指出。转载请联系作者。


Dragging      拖动

Draggable layers in Framer include physics and many customizable properties that open up new creative possibilities. By accounting for things like the speed and the direction, you can take greater control over dragging interactions.

在Framer中的可拖动层包含物理属性和很多自定义属性,可以激发创意。通过对类似于速度和方向的一些事情的解释,可以对拖动交互达到很好的控制。


Let’s start by creating a draggable layer. Simply set

draggable.enabled

to

true

. Now, you can pick it up, place it elsewhere, and even toss it around.

让我们开始创建可拖动层。只需要简单的把draggable.enabled设置为true。现在,你可以把它拿起来了,放在任何地方,甚至扔出去。

You can also restrict the dragging direction, by disabling dragging horizontally or vertically. Both are enabled by default. You can also specify the speed. This can provide you with accelerated or reduced dragging.

你也可以限制拖动的方向,禁用拖动的水平方向或垂直方向,默认两个方向都是可用的。你也可以指定速度,这个可以让你加速或减速拖动。




Constraints      约束

In most cases, you’ll want to limit the range a layer can be dragged within. For example, think of the pull-to-refresh gesture, in which you can only drag a certain distance. In Framer, this can be achieved with constraints.

在大多数时候,你会想要限制一个层可以被拖动的范围。例如,像下拉刷新的手势,你只能拖动一定的距离。在Framer中,可以利用约束来完成。

Constraints have x, y, width and height properties. Think of it as another layer, that contains your draggable layer.

约束有x,y,宽和高这些属性。把约束想象成一个别的层,它包含你的可拖动层。


这段代码先把layerA层的可拖动属性设为true,又将可拖动的约束设为位置x:0,y:0,宽:160px,高80px。


Overdrag, Bounce and Momentum      拖出,弹力和惯性

(暂这么翻译,如果有朋友知道这三个名词的确切翻译,麻烦留言告诉我)

It’s likely you’re already familiar with these terms, even if you don’t know them by name. Let’s have a look at each of them.

看来你已经熟悉它们之间的关系了,甚至你还不知道它们的名字。让我们来单独看看它们。

A draggable layer can be dragged beyond its constraints, although it will snap back. This is called overdrag. Think of Safari on iOS, where you can drag websites beyond the top and bottom of the pages.

一个可拖动层可以被拖出它的约束,即使它还会吸附回来。这就叫做拖出。想象在iOS的Safari,你可以拖动页面超出顶部和底部。

When a layer is moving in a direction, it can also bounce beyond its constraints. This is called bounce. It’s sort of like a rubber-band effect.

当层在一个方向上移动时,它的弹力可以超出它的约束,这就叫做弹力。它有点像是橡皮筋效果。

Finally, setting momentum to false disables the default physics of your draggable layer. You can still move it, but you can’t toss it around anymore. The momentum and bounce properties can also be customised. Have a look at this example of a custom draggable layer with constraints.

最后,设置可拖动层的惯性为false会让默认的物理失效。你仍然可以移动它,但是你无法将它扔出去。惯性和弹力属性也是可以自定义的。可以看一下这个例子<使用了约束的可拖动层案例>


Events      事件

The three fundamental dragging events that you can listen to are: DragStart, DragMove and DragEnd. The Move event is fired whenever the draggable layer is moving. Unlike the DragMove event, this includes the momentum and bounce animations.

有三个你可以监听的基本的拖动中事件,是:拖动开始,拖动中,拖动结束。当可拖动图层移动中时移动事件才会被触发,不同于拖动中事件,拖动中事件包含了惯性和弹力动画。

这段代码是监听了drag的开始,进行中,结束三个事件。

测试发现,DragStart监听的是在拖住并且开始移动的一瞬间。点住不动并不是DragStart的监听内容。

而且感觉这个Move event出现的很突然,经过查文档,测试,半天才明白意思。在最后一句,官方说了两个事件,一个是Events.move,一个是DragMove。move事件监听的是手指拖动移动的过程,松开手指结束。而DragMove监听的是手指移动的过程,加上加上松开手指之后直到惯性以及弹力动画结束的过程。上图,一看就明白。



Drag Animation      拖动动画

There are two specific events that occur when momentum and bounce are enabled: DragAnimationDidStart and DragAnimationDidEnd. They occur after DragEnd, while the layer is animating.

当惯性和弹力被启用时,出现两个特殊的事件。拖动动画开始时和拖动动画结束时。它在拖动结束的时候出现。

Both the ScrollComponent and the PageComponent are built with Draggable Layers, meaning you can use all draggable properties and methods as well. Learn more about the ScrollComponent next.

滚动组件和页面组件都是和可拖动层一起组成,这意味着你可以使用所有的可拖动层的属性和方法。学习更多关于滚动组件请看下一篇。


Summary      概要

Setting draggable.enabled to true creates a draggable layer

设置draggable.enabled为true来创建可拖动层。

You can restrict the dragging direction of a layer

你可以限制一个层的拖动方向。

You can limit the dragging range within with constraints

你可以通过约束来限制拖动的范围。

By default, a draggable layer has overdrag, momentum and bounce

默认的,一个可拖动层有 拖出、惯性和弹力。

The 3 basic dragging events are: DragStart, DragMove and DragEnd

3个基础的拖动事件是:拖动开始、拖动中、拖动结束。

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

推荐阅读更多精彩内容

  • day173 今天5:55就醒了。6:15开始练习。之前还是固定的vinyasa,只是在练到B时,在战士流之前加了...
    飞天小毛女阅读 199评论 0 0
  • 六点,荒野上的那一棵 时针指向了6点,荒野上,两个黑影...... 试问,你是否见过这样一棵柳树,它不长在河边,没...
    LR筱语阅读 301评论 0 1
  • 今天晚上去听了吴老师的讲座,关于恋爱过程中要问的15个问题的,那些问题非常实际,也是男女相处过程中一定会遇到的...
    明初的日记本阅读 786评论 0 0