Skip to content

Instantly share code, notes, and snippets.

@JustinSDK
Last active August 29, 2015 14:06
Show Gist options
  • Save JustinSDK/2f0d6278f64a8d6b778f to your computer and use it in GitHub Desktop.
Save JustinSDK/2f0d6278f64a8d6b778f to your computer and use it in GitHub Desktop.
The answer of exercise 33 on http://reactive-extensions.github.io/learnrx/
function(sprite, spriteContainer) {
var spriteMouseDowns = Observable.fromEvent(sprite, "mousedown"),
spriteContainerMouseMoves = Observable.fromEvent(spriteContainer, "mousemove"),
spriteContainerMouseUps = Observable.fromEvent(spriteContainer, "mouseup"),
spriteMouseDrags =
// For every mouse down event on the sprite...
spriteMouseDowns.
flatMap(function() {
return spriteContainerMouseMoves;
}).takeUntil(spriteContainerMouseUps);
// For each mouse drag event, move the sprite to the absolute page position.
spriteMouseDrags.forEach(function(dragPoint) {
sprite.style.left = dragPoint.pageX + "px";
sprite.style.top = dragPoint.pageY + "px";
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment