JSFiddle - React, Tailwind, and code Playground

by georgie

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/rxjs/4.1.0/rx.all.js"></script>

JavaScript

let Observable = Rx.Observable;
let mousemoves = Observable.fromEvent(document, 'mousemove')
let mousedowns = Observable.fromEvent(document, 'mousedown')
let mouseups = Observable.fromEvent(document, 'mouseup')

let mouseDeltaMoves = mousedowns
.concatMap(function({offsetX, offsetY}){
  return mousemoves
  	.takeUntil(mouseups)
    .map( ({pageX, pageY}) => ({x:pageX-offsetX, y: pageY-offsetY}) )
})

mouseMagicMoves.forEach(function({x,y}){
	console.log('moved',x,y)
})