Skip to content

Instantly share code, notes, and snippets.

@rjmoggach
Created March 4, 2015 08:02
Show Gist options
  • Save rjmoggach/ec021f68a3d7407661a0 to your computer and use it in GitHub Desktop.
Save rjmoggach/ec021f68a3d7407661a0 to your computer and use it in GitHub Desktop.
Famous App Chaining Modifiers in Famo.us 0.3.1 // source http://jsbin.com/rudufu/1
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Chaining Modifiers in Famo.us 0.3.1" />
<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.1/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.1/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 OptionsManager = require('famous/core/OptionsManager');
var Surface = require('famous/core/Surface');
var Modifier = require('famous/core/Modifier');
var Transform = require('famous/core/Transform');
var RenderNode = require('famous/core/RenderNode');
var mainContext = Engine.createContext();
mainContext.setPerspective(1000);
var back = new Surface({
size: [undefined, undefined],
content: 'Click to toggle',
properties: {
backgroundColor: 'rgba(0,0,0,0.10)'
}
});
back.gone = true;
var splash = new Surface({
size: [500, 500],
content: 'Famo.us Application',
properties: {
backgroundColor: 'rgba(0,0,0,0.25)'
}
});
var myRotateModifier = new Modifier({
origin: [0.5, 0.5],
align: [0.5, 0.5],
});
myRotateModifier.setTransform(
Transform.rotateX(1.4),
{duration: 1000}
);
var myModifier = new Modifier();
myModifier.setTransform(
Transform.scale(0, 0, 1),
{duration: 2000}
);
mainContext.add(back); mainContext.add(myRotateModifier).add(myModifier).add(splash);
back.on('click', function(e){
console.log('clicked', e, back.gone);
if (back.gone) {
myRotateModifier.setTransform(
Transform.rotateX(0),
{duration: 2000}
);
myModifier.setTransform(
Transform.scale(1, 1, 1),
{duration: 1000}
);
} else {
myRotateModifier.setTransform(
Transform.rotateX(1.4),
{duration: 1000}
);
myModifier.setTransform(
Transform.scale(0, 0, 1),
{duration: 2000}
);
}
back.gone = !back.gone;
});
});
</script>
<script id="jsbin-source-html" type="text/html"><!DOCTYPE html>
<html>
<head>
<meta name="description" content="Chaining Modifiers in Famo.us 0.3.1" />
<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.1/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.1/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 OptionsManager = require('famous/core/OptionsManager');
var Surface = require('famous/core/Surface');
var Modifier = require('famous/core/Modifier');
var Transform = require('famous/core/Transform');
var RenderNode = require('famous/core/RenderNode');
var mainContext = Engine.createContext();
mainContext.setPerspective(1000);
var back = new Surface({
size: [undefined, undefined],
content: 'Click to toggle',
properties: {
backgroundColor: 'rgba(0,0,0,0.10)'
}
});
back.gone = true;
var splash = new Surface({
size: [500, 500],
content: 'Famo.us Application',
properties: {
backgroundColor: 'rgba(0,0,0,0.25)'
}
});
var myRotateModifier = new Modifier({
origin: [0.5, 0.5],
align: [0.5, 0.5],
});
myRotateModifier.setTransform(
Transform.rotateX(1.4),
{duration: 1000}
);
var myModifier = new Modifier();
myModifier.setTransform(
Transform.scale(0, 0, 1),
{duration: 2000}
);
mainContext.add(back); mainContext.add(myRotateModifier).add(myModifier).add(splash);
back.on('click', function(e){
console.log('clicked', e, back.gone);
if (back.gone) {
myRotateModifier.setTransform(
Transform.rotateX(0),
{duration: 2000}
);
myModifier.setTransform(
Transform.scale(1, 1, 1),
{duration: 1000}
);
} else {
myRotateModifier.setTransform(
Transform.rotateX(1.4),
{duration: 1000}
);
myModifier.setTransform(
Transform.scale(0, 0, 1),
{duration: 2000}
);
}
back.gone = !back.gone;
});
});
</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 OptionsManager = require('famous/core/OptionsManager');
var Surface = require('famous/core/Surface');
var Modifier = require('famous/core/Modifier');
var Transform = require('famous/core/Transform');
var RenderNode = require('famous/core/RenderNode');
var mainContext = Engine.createContext();
mainContext.setPerspective(1000);
var back = new Surface({
size: [undefined, undefined],
content: 'Click to toggle',
properties: {
backgroundColor: 'rgba(0,0,0,0.10)'
}
});
back.gone = true;
var splash = new Surface({
size: [500, 500],
content: 'Famo.us Application',
properties: {
backgroundColor: 'rgba(0,0,0,0.25)'
}
});
var myRotateModifier = new Modifier({
origin: [0.5, 0.5],
align: [0.5, 0.5],
});
myRotateModifier.setTransform(
Transform.rotateX(1.4),
{duration: 1000}
);
var myModifier = new Modifier();
myModifier.setTransform(
Transform.scale(0, 0, 1),
{duration: 2000}
);
mainContext.add(back); mainContext.add(myRotateModifier).add(myModifier).add(splash);
back.on('click', function(e){
console.log('clicked', e, back.gone);
if (back.gone) {
myRotateModifier.setTransform(
Transform.rotateX(0),
{duration: 2000}
);
myModifier.setTransform(
Transform.scale(1, 1, 1),
{duration: 1000}
);
} else {
myRotateModifier.setTransform(
Transform.rotateX(1.4),
{duration: 1000}
);
myModifier.setTransform(
Transform.scale(0, 0, 1),
{duration: 2000}
);
}
back.gone = !back.gone;
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment