I would like to be able to move any curve (for example f(x)=x, or g(x)=x^2) by mouse dragging the particular curve. 

I would like to keep the functionality I have for panning across the screen in the code below. This uses Manipulate, (provided by @Karsten 7) but other solutions using Dynamic can be found [here](https://mathematica.stackexchange.com/questions/102898/moving-any-point-with-a-mouse) 

```
Manipulate[

 Plot[{x, x^2}, {x, -3, 3}, Axes -> True, AxesOrigin -> {0, 0}, 
  PlotRange -> pr, GridLines -> Range @@@ Round@pr, 
  GridLinesStyle -> LightGray],

 {{p, {0, 0}}, Locator, 
  TrackingFunction -> {p = 
       MousePosition[{"Graphics", Graphics}, {0, 0}]; &, 
    If[MousePosition["GraphicsScaled"] \[Element] Rectangle[], 
       pr += p - MousePosition[{"Graphics", Graphics}, {0, 0}]]; &, 
    None}, Appearance -> None},
 {{pr, {{-5, 5}, {-5, 5}}},
  None}]

```

I'm guessing I would like to put a locator on each curve and then move the curve as long as I am close enough to the locator. What do you think? 

Below is a video of what I want to emulate from desmos.com.

[![enter image description here](https://i.stack.imgur.com/wPPrG.gif)](https://i.stack.imgur.com/wPPrG.gif)