Skip to content

Instantly share code, notes, and snippets.

@rjmoggach
Created March 4, 2015 08:40
Show Gist options
  • Save rjmoggach/6a6b0a16edf28a3d47f3 to your computer and use it in GitHub Desktop.
Save rjmoggach/6a6b0a16edf28a3d47f3 to your computer and use it in GitHub Desktop.
Famous App Stacking Famo.us Surfaces 0.3.0 // source http://jsbin.com/xobeje
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Stacking Famo.us Surfaces 0.3.0" />
<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.0/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.0/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 Modifier = require('famous/core/Modifier');
var RenderNode = require('famous/core/RenderNode');
var Transform = require('famous/core/Transform');
var RenderController = require('famous/views/RenderController');
var mainContext = Engine.createContext();
mainContext.setPerspective(1000);
var bgSurface = new Surface({
content: 'Dbl-Click to Toggle Visibility'
});
mainContext.add(new Modifier({align: [0.5,0]})).add(bgSurface);
var surfaceOne = new Surface({
content: 'Surface One',
size: [100, 200],
properties: {
backgroundColor: 'rgba(0,0,0,0.25)',
cursor: 'pointer'
}
});
var surfaceTwo = new Surface({
content: 'Surface Two',
size: [100, 200],
properties: {
backgroundColor: 'rgba(0,0,255,0.25)',
cursor: 'pointer'
}
});
var modTop = new Modifier({transform: Transform.translate(100,0,0.0001)});
var modBottom = new Modifier({transform: Transform.translate(120,180,0.0002)});
var rendererOne = new RenderController();
var rendererTwo = new RenderController();
mainContext.add(modTop).add(rendererOne);
mainContext.add(modBottom).add(rendererTwo);
rendererOne.show(surfaceOne);
rendererTwo.show(surfaceTwo);
surfaceTwo.on('click', function(e){
rendererOne.show(surfaceTwo);
rendererTwo.show(surfaceOne);
});
surfaceOne.on('click', function(e){
rendererOne.show(surfaceOne);
rendererTwo.show(surfaceTwo);
});
var showing = true;
Engine.on('dblclick', function(e){
if (showing) {
rendererTwo.hide();
rendererOne.show(surfaceOne);
} else {
rendererOne.hide();
rendererTwo.show(surfaceTwo);
}
showing = !showing;
});
});
</script>
<script id="jsbin-source-html" type="text/html"><!DOCTYPE html>
<html>
<head>
<meta name="description" content="Stacking Famo.us Surfaces 0.3.0" />
<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.0/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.0/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 Modifier = require('famous/core/Modifier');
var RenderNode = require('famous/core/RenderNode');
var Transform = require('famous/core/Transform');
var RenderController = require('famous/views/RenderController');
var mainContext = Engine.createContext();
mainContext.setPerspective(1000);
var bgSurface = new Surface({
content: 'Dbl-Click to Toggle Visibility'
});
mainContext.add(new Modifier({align: [0.5,0]})).add(bgSurface);
var surfaceOne = new Surface({
content: 'Surface One',
size: [100, 200],
properties: {
backgroundColor: 'rgba(0,0,0,0.25)',
cursor: 'pointer'
}
});
var surfaceTwo = new Surface({
content: 'Surface Two',
size: [100, 200],
properties: {
backgroundColor: 'rgba(0,0,255,0.25)',
cursor: 'pointer'
}
});
var modTop = new Modifier({transform: Transform.translate(100,0,0.0001)});
var modBottom = new Modifier({transform: Transform.translate(120,180,0.0002)});
var rendererOne = new RenderController();
var rendererTwo = new RenderController();
mainContext.add(modTop).add(rendererOne);
mainContext.add(modBottom).add(rendererTwo);
rendererOne.show(surfaceOne);
rendererTwo.show(surfaceTwo);
surfaceTwo.on('click', function(e){
rendererOne.show(surfaceTwo);
rendererTwo.show(surfaceOne);
});
surfaceOne.on('click', function(e){
rendererOne.show(surfaceOne);
rendererTwo.show(surfaceTwo);
});
var showing = true;
Engine.on('dblclick', function(e){
if (showing) {
rendererTwo.hide();
rendererOne.show(surfaceOne);
} else {
rendererOne.hide();
rendererTwo.show(surfaceTwo);
}
showing = !showing;
});
});
</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 Modifier = require('famous/core/Modifier');
var RenderNode = require('famous/core/RenderNode');
var Transform = require('famous/core/Transform');
var RenderController = require('famous/views/RenderController');
var mainContext = Engine.createContext();
mainContext.setPerspective(1000);
var bgSurface = new Surface({
content: 'Dbl-Click to Toggle Visibility'
});
mainContext.add(new Modifier({align: [0.5,0]})).add(bgSurface);
var surfaceOne = new Surface({
content: 'Surface One',
size: [100, 200],
properties: {
backgroundColor: 'rgba(0,0,0,0.25)',
cursor: 'pointer'
}
});
var surfaceTwo = new Surface({
content: 'Surface Two',
size: [100, 200],
properties: {
backgroundColor: 'rgba(0,0,255,0.25)',
cursor: 'pointer'
}
});
var modTop = new Modifier({transform: Transform.translate(100,0,0.0001)});
var modBottom = new Modifier({transform: Transform.translate(120,180,0.0002)});
var rendererOne = new RenderController();
var rendererTwo = new RenderController();
mainContext.add(modTop).add(rendererOne);
mainContext.add(modBottom).add(rendererTwo);
rendererOne.show(surfaceOne);
rendererTwo.show(surfaceTwo);
surfaceTwo.on('click', function(e){
rendererOne.show(surfaceTwo);
rendererTwo.show(surfaceOne);
});
surfaceOne.on('click', function(e){
rendererOne.show(surfaceOne);
rendererTwo.show(surfaceTwo);
});
var showing = true;
Engine.on('dblclick', function(e){
if (showing) {
rendererTwo.hide();
rendererOne.show(surfaceOne);
} else {
rendererOne.hide();
rendererTwo.show(surfaceTwo);
}
showing = !showing;
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment