Skip to content
A simple controller for FramerJS that allows you to transition between views with just a couple lines of code.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
module
vnc-example01.framer
LICENSE
README.md

README.md

framer-viewNavigationController

fVNC is a simple view controller for FramerJS that allows you to transition between views with just a couple lines of code.

Features

  • Built-in method for transitioning between views.
  • Customize the transition by choosing up, down, left, or right transitions.
  • Customize the movement by providing animationOptions.
  • Automatically places back buttons in your flow at the top left of your views.
  • Automatically transitions backward, using the opposite direction of your initial transition. (v1.1)

TODO

  • Allow custom states for building unique screen-to-screen transitions.
  • Moar documentation!

How to Get Started

Step 1: Include the module in your protoype.

{ViewNavigationController} = require "ViewNavigationController"

Step 2: Create a new view controller.

vnc = new ViewNavigationController

In this case, I've called my view controller vnc. By default, the view controller will match the size of the device's screen. You can add width and height properties to modify the size of the view controller.

Step 3: Create your views and add them to the view controller.

myFirstView = new Layer
	name: "initialView"
	width: 750, height: 1334
	image: "images/screen01.png"
	parent: vnc

mySecondView = new Layer
	width: 750, height: 1334
	image: "images/screen02.png"
	parent: vnc

To add them to the view controller, just make sure the it's their parent. You can see I've also set the name property of myFirstView to initialView. This tells the view controller that I want to start with this view appearing first.

Step 4: Set up a button to change views.

myButton = new Layer
	width: Screen.width
	height: 88
	y: 1130
	parent: myFirstView

myButton.on Events.Click, ->
	vnc.transition(mySecondView)

Now I can quickly create a button that causes our view controller to change views. I don't need to worry about creating a 'back' button for mySecondView, the view controller has already done that for me. And if I add more views and create more transitions, the view controler will remember which views I've seen, and will step me back in the correct order.

Methods

fVNC comes with a few methods built-in to help you do things like transition backward, or remove the automatically created back buttons from an existing view.

back()

To move backward by one history item, simply call the back() method.

myBackButton.on Events.Click, ->
	vnc.back()

Just remember, if there's no prior view in the history stack, there's nothing to go back to, so nothing will happen.

removeBackButton(view)

To remove the back button from a view, just call removeBackButton() and pass in the view you'd like to affect.

vnc.removeBackButton(mySecondView)

This code will prevent the back button from appearing on mySecondView.

Feature Requests

If you'd like to see new features added to fVNC, just drop me a line on Twitter (@chriscamargo), or better yet, submit a pull request.

Changelog

v2 (Sun, May 15, 2016)
  • fVNC now emits a change:view event to notify you when a view change happens.
  • fVNC now keeps track of the transition you use, so the direction is automatically reversed when using 'back'.
v3 (Fri, Oct 7, 2016)
  • fVNC updated to support Framer v72.
v4 (Fri, Oct 21, 2016)
  • Fixed a bug with the removeBackButton method. Thanks to @geligelu for finding and reporting this one.
You can’t perform that action at this time.