Skip to content

Instantly share code, notes, and snippets.

@rjmoggach
Created March 4, 2015 08:24
Show Gist options
  • Save rjmoggach/917fe99e04737fd2611d to your computer and use it in GitHub Desktop.
Save rjmoggach/917fe99e04737fd2611d to your computer and use it in GitHub Desktop.
Famous App z-translate a Gridlayout in Famo.us 0.3.4 // source http://jsbin.com/solabu
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="z-translate a Gridlayout in Famo.us 0.3.4" />
<meta charset="utf-8">
<title>Famous App</title>
<meta name="viewport" content="width=device-width, maximum-scale=1, user-scalable=no" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<script type="text/javascript" src="http://code.famo.us/lib/functionPrototypeBind.js"></script>
<script type="text/javascript" src="http://code.famo.us/lib/classList.js"></script>
<script type="text/javascript" src="http://code.famo.us/lib/requestAnimationFrame.js"></script>
<!-- famous -->
<link rel="stylesheet" type="text/css" href="http://code.famo.us/famous/0.3.4/famous.css" />
<script src="http://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.14/require.min.js"></script>
<script type="text/javascript" src="http://code.famo.us/famous/0.3.4/famous.min.js"></script>
<script type="text/javascript">require(['main']);console.log('------------start------------')</script>
<style id="jsbin-css">
html {
background: #fff;
}
.double-sided {
-webkit-backface-visibility: visible;
backface-visibility: visible;
}
.double-font {
font-size: 2em;
}
</style>
</head>
<body class='famous-root'>
<script id="jsbin-javascript">
define('main', function (require, exports, module) {
var Engine = require("famous/core/Engine");
var Surface = require("famous/core/Surface");
var Scrollview = require("famous/views/Scrollview");
var View = require("famous/core/View");
var ContainerSurface = require("famous/surfaces/ContainerSurface");
var GridLayout = require("famous/views/GridLayout");
var StateModifier = require('famous/modifiers/StateModifier');
var Transform = require("famous/core/Transform");
var mainContext = Engine.createContext();
mainContext.setPerspective(1000);
var grid = new GridLayout({
dimensions: [6, 2]
});
var scrollview = new Scrollview({direction: 0});
var surfaces = [];
var mods = [];
var views = [];
for (var i = 0; i < 12; i++) {
var view = new View();
var mod = new StateModifier({
size: [200, 200],
transform: Transform.translate(0,0,0.001),
proportions: [1, 1]
});
var temp = new Surface({
content: "Surface: " + (i + 1),
properties: {
backgroundColor: "hsl(" + (i * 360 / 40) + ", 100%, 50%)",
lineHeight: "200px",
textAlign: "center"
}
});
surfaces.push(temp);
mods.push(mod);
temp.pipe(view);
view.add(mod).add(temp);
views.push(view);
temp.on('click', translateOut.bind(temp, i));
}
grid.sequenceFrom(views);
var container = new ContainerSurface({size:[1200,400]});
container.add(grid);
grid.pipe(container);
scrollview.sequenceFrom([container]);
container.pipe(scrollview);
function translateOut(index){
if (!this.moved) {
mods[index].setTransform(Transform.translate(0,0,400), {duration:1000});
mods[index].setProportions([1.01, 1.01], {duration:1000});
} else {
mods[index].setTransform(Transform.translate(0, 0,0.001), {duration:1000});
mods[index].setProportions([1, 1], {duration:1000});
}
this.moved =!this.moved;
}
mainContext.add(scrollview);
});
</script>
<script id="jsbin-source-html" type="text/html"><!DOCTYPE html>
<html>
<head>
<meta name="description" content="z-translate a Gridlayout in Famo.us 0.3.4" />
<meta charset="utf-8">
<title>Famous App</title>
<meta name="viewport" content="width=device-width, maximum-scale=1, user-scalable=no" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<script type="text/javascript" src="http://code.famo.us/lib/functionPrototypeBind.js"><\/script>
<script type="text/javascript" src="http://code.famo.us/lib/classList.js"><\/script>
<script type="text/javascript" src="http://code.famo.us/lib/requestAnimationFrame.js"><\/script>
<\!-- famous -->
<link rel="stylesheet" type="text/css" href="http://code.famo.us/famous/0.3.4/famous.css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.14/require.min.js"><\/script>
<script type="text/javascript" src="http://code.famo.us/famous/0.3.4/famous.min.js"><\/script>
<script type="text/javascript">require(['main']);console.log('------------start------------')<\/script>
</head>
<body class='famous-root'>
</body>
</html></script>
<script id="jsbin-source-css" type="text/css">html {
background: #fff;
}
.double-sided {
-webkit-backface-visibility: visible;
backface-visibility: visible;
}
.double-font {
font-size: 2em;
}
</script>
<script id="jsbin-source-javascript" type="text/javascript">define('main', function (require, exports, module) {
var Engine = require("famous/core/Engine");
var Surface = require("famous/core/Surface");
var Scrollview = require("famous/views/Scrollview");
var View = require("famous/core/View");
var ContainerSurface = require("famous/surfaces/ContainerSurface");
var GridLayout = require("famous/views/GridLayout");
var StateModifier = require('famous/modifiers/StateModifier');
var Transform = require("famous/core/Transform");
var mainContext = Engine.createContext();
mainContext.setPerspective(1000);
var grid = new GridLayout({
dimensions: [6, 2]
});
var scrollview = new Scrollview({direction: 0});
var surfaces = [];
var mods = [];
var views = [];
for (var i = 0; i < 12; i++) {
var view = new View();
var mod = new StateModifier({
size: [200, 200],
transform: Transform.translate(0,0,0.001),
proportions: [1, 1]
});
var temp = new Surface({
content: "Surface: " + (i + 1),
properties: {
backgroundColor: "hsl(" + (i * 360 / 40) + ", 100%, 50%)",
lineHeight: "200px",
textAlign: "center"
}
});
surfaces.push(temp);
mods.push(mod);
temp.pipe(view);
view.add(mod).add(temp);
views.push(view);
temp.on('click', translateOut.bind(temp, i));
}
grid.sequenceFrom(views);
var container = new ContainerSurface({size:[1200,400]});
container.add(grid);
grid.pipe(container);
scrollview.sequenceFrom([container]);
container.pipe(scrollview);
function translateOut(index){
if (!this.moved) {
mods[index].setTransform(Transform.translate(0,0,400), {duration:1000});
mods[index].setProportions([1.01, 1.01], {duration:1000});
} else {
mods[index].setTransform(Transform.translate(0, 0,0.001), {duration:1000});
mods[index].setProportions([1, 1], {duration:1000});
}
this.moved =!this.moved;
}
mainContext.add(scrollview);
});</script></body>
</html>
html {
background: #fff;
}
.double-sided {
-webkit-backface-visibility: visible;
backface-visibility: visible;
}
.double-font {
font-size: 2em;
}
define('main', function (require, exports, module) {
var Engine = require("famous/core/Engine");
var Surface = require("famous/core/Surface");
var Scrollview = require("famous/views/Scrollview");
var View = require("famous/core/View");
var ContainerSurface = require("famous/surfaces/ContainerSurface");
var GridLayout = require("famous/views/GridLayout");
var StateModifier = require('famous/modifiers/StateModifier');
var Transform = require("famous/core/Transform");
var mainContext = Engine.createContext();
mainContext.setPerspective(1000);
var grid = new GridLayout({
dimensions: [6, 2]
});
var scrollview = new Scrollview({direction: 0});
var surfaces = [];
var mods = [];
var views = [];
for (var i = 0; i < 12; i++) {
var view = new View();
var mod = new StateModifier({
size: [200, 200],
transform: Transform.translate(0,0,0.001),
proportions: [1, 1]
});
var temp = new Surface({
content: "Surface: " + (i + 1),
properties: {
backgroundColor: "hsl(" + (i * 360 / 40) + ", 100%, 50%)",
lineHeight: "200px",
textAlign: "center"
}
});
surfaces.push(temp);
mods.push(mod);
temp.pipe(view);
view.add(mod).add(temp);
views.push(view);
temp.on('click', translateOut.bind(temp, i));
}
grid.sequenceFrom(views);
var container = new ContainerSurface({size:[1200,400]});
container.add(grid);
grid.pipe(container);
scrollview.sequenceFrom([container]);
container.pipe(scrollview);
function translateOut(index){
if (!this.moved) {
mods[index].setTransform(Transform.translate(0,0,400), {duration:1000});
mods[index].setProportions([1.01, 1.01], {duration:1000});
} else {
mods[index].setTransform(Transform.translate(0, 0,0.001), {duration:1000});
mods[index].setProportions([1, 1], {duration:1000});
}
this.moved =!this.moved;
}
mainContext.add(scrollview);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment