Just a demo to test and play around "canvas" with the native interaction possibilities (some of them, there are so many of them) enabled from the options of Network modules of awesome vis.js library. To illustrate this discussion.
The following network does not have a fixed scale and position, so the network viewer window does not necessarily match the pixels of the HTML canvas.
So, in this config it becomes more tricky to find nodes from an area drawn in the canvas. In any case, I could not find suitable solutions for now. Any work track or idea are welcome...

- 2 succesive clicks in canvas to draw an area including nodes or not.... 2nd click a bit longer
Note that sometimes it's necessary to do this action twice before seeing a drawn area.
For example, if a first click has already been done to drag a node (e.g), this event remains active in the DOM until a 2nd click.

below initial nodes positions on starting


        

below nodes included in the drawed zone