Skip to content

Commit

Permalink
Add layer.perspective, layer.point
Browse files Browse the repository at this point in the history
  • Loading branch information
koenbok committed Oct 6, 2014
1 parent 2db13aa commit 00ab257
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 3 deletions.
1 change: 0 additions & 1 deletion framer/Config.coffee
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ body {
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
-webkit-user-select: none; -webkit-user-select: none;
-webkit-perspective: 1000;
} }
.framerLayer input, .framerLayer input,
Expand Down
25 changes: 23 additions & 2 deletions framer/Layer.coffee
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -145,6 +145,8 @@ class exports.Layer extends BaseClass
@define "originY", layerProperty @, "originY", "webkitTransformOrigin", 0.5, _.isNumber @define "originY", layerProperty @, "originY", "webkitTransformOrigin", 0.5, _.isNumber
# @define "originZ", layerProperty @, "originZ", "WebkitTransformOrigin", 0.5 # @define "originZ", layerProperty @, "originZ", "WebkitTransformOrigin", 0.5


@define "perspective", layerProperty @, "perspective", "webkitPerspective", 0, _.isNumber

@define "rotationX", layerProperty @, "rotationX", "webkitTransform", 0, _.isNumber @define "rotationX", layerProperty @, "rotationX", "webkitTransform", 0, _.isNumber
@define "rotationY", layerProperty @, "rotationY", "webkitTransform", 0, _.isNumber @define "rotationY", layerProperty @, "rotationY", "webkitTransform", 0, _.isNumber
@define "rotationZ", layerProperty @, "rotationZ", "webkitTransform", 0, _.isNumber @define "rotationZ", layerProperty @, "rotationZ", "webkitTransform", 0, _.isNumber
Expand Down Expand Up @@ -216,13 +218,20 @@ class exports.Layer extends BaseClass
############################################################## ##############################################################
# Geometry # Geometry


@define "point",
get: -> _.pick(@, ["x", "y"])
set: (point) ->
return if not point
for k in ["x", "y"]
@[k] = point[k] if point.hasOwnProperty(k)


@define "frame", @define "frame",
get: -> _.pick(@, ["x", "y", "width", "height"]) get: -> _.pick(@, ["x", "y", "width", "height"])
set: (frame) -> set: (frame) ->
return if not frame return if not frame
for k in ["x", "y", "width", "height"] for k in ["x", "y", "width", "height"]
if frame.hasOwnProperty(k) @[k] = frame[k] if frame.hasOwnProperty(k)
@[k] = frame[k]


@define "minX", @define "minX",
get: -> @x get: -> @x
Expand Down Expand Up @@ -570,6 +579,16 @@ class exports.Layer extends BaseClass
_.filter @_context._animationList, (animation) => _.filter @_context._animationList, (animation) =>
animation.options.layer == @ animation.options.layer == @


animatingProperties: ->

properties = {}

for animation in @animations()
for propertyName in _.keys(animation._stateA)
properties[propertyName] = animation

return properties

animateStop: -> animateStop: ->
_.invoke(@animations(), "stop") _.invoke(@animations(), "stop")


Expand Down Expand Up @@ -613,6 +632,8 @@ class exports.Layer extends BaseClass
get: -> get: ->
@_draggable ?= new LayerDraggable @ @_draggable ?= new LayerDraggable @
@_draggable @_draggable
set: ->
throw Error "You can't set the draggable object"


############################################################## ##############################################################
## SCROLLING ## SCROLLING
Expand Down
3 changes: 3 additions & 0 deletions framer/LayerStyle.coffee
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -126,6 +126,9 @@ exports.LayerStyle =
# Todo: Origin z is in pixels. I need to read up on this. # Todo: Origin z is in pixels. I need to read up on this.
# "#{layer._properties.originX * 100}% #{layer._properties.originY * 100}% #{layer._properties.originZ * 100}%" # "#{layer._properties.originX * 100}% #{layer._properties.originY * 100}% #{layer._properties.originZ * 100}%"


webkitPerspective: (layer) ->
"#{layer._properties.perspective}"

pointerEvents: (layer) -> pointerEvents: (layer) ->
if layer._properties.ignoreEvents if layer._properties.ignoreEvents
return "none" return "none"
Expand Down
8 changes: 8 additions & 0 deletions test/tests/LayerTest.coffee
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -262,6 +262,14 @@ describe "Layer", ->
testBorderRadius(layer, "50%") testBorderRadius(layer, "50%")




it "should set perspective", ->

layer = new Layer
layer.perspective = 500

layer.style["-webkit-perspective"].should.equal("500")




describe "Filter Properties", -> describe "Filter Properties", ->


Expand Down

0 comments on commit 00ab257

Please sign in to comment.