Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
  <script src="//fb.me/react-with-addons-0.11.0.js"></script>
</head>
<body>
</body>
</html>
 
div {
  cursor: ew-resize;
  background-color: #ccc;
  text-align: center;
  line-height: 4em;
  border: 1px #000 solid;
}
.dragging {border: 1px #000 dashed}
 
/** @jsx React.DOM */
var DraggableNumber = React.createClass({
  getInitialState: function() {
    return {n: 21, x: 0, dragging: false};
  },
  handleMouseMove: function(event) {
    if (!this.state.dragging) return;
    var next = this.state.n + (event.pageX > this.state.x ? 1 : -1);
    this.setState({
      x: event.pageX,
      n: next > 0 ? next : this.state.n
    });
  },
  handleMouseDown: function(event) {
    event.preventDefault(); // prevent text selection
    this.setState({dragging: true});
  },
  handleMouseUp: function() {
    this.setState({dragging: false});
  },
  render: function() {
    return (
      <div onMouseMove={this.handleMouseMove}
           onMouseUp={this.handleMouseUp}
           className={this.state.dragging ? "dragging" : ""}>
        Last <span onMouseDown={this.handleMouseDown}>
               {this.state.n}
             </span> day{this.state.n > 1 ? "s" : ""}
      </div>
    );
  }
});
React.renderComponent(<DraggableNumber/>, document.body);
Output

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

Dismiss x
public
Bin info
n1k0pro
0viewers