Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<link href="http://ajax.googleapis.com/ajax/libs/dojo/1.8.0/dijit/themes/claro/claro.css" rel="stylesheet" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.8.0/dojo/dojo.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <div id="box">I'm a box!</div>
  <br/>
  <button id="btn">Toggle</button> 
</body>
</html>
 
#box {
  width           : 42px;
  height          : 42px;
  background-color: #00f;
  color           : white;
  overflow        : hidden;
  box-sizing      : border-box;
}
 
require(["dojo/_base/fx", "dojo/dom", "dojo/dom-style", "dojo/on", "dojo/domReady!"], function(baseFx, dom, style, on){
  
  
  
function invert_display(id) {
    var element = dom.byId(id),
        opacity = style.get(element, 'opacity');
        
    baseFx.animateProperty({
        node: id,
        properties: {
          opacity: opacity<1 ? 1 : 0,
          backgroundColor: opacity<1 ? '#00f' : '#f00',
          height: opacity<1 ? 42 : 0
        },
      onBegin: function() {
        // set display property here?
      },
      onEnd: function() {
        // set display property here?
      }
    }).play();
}
  
on(dom.byId("btn"), "click", function() {         invert_display("box");
});
  
});
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers