pivot object over two different axes by pulling on its edges
If you're willing to rotate the plane, which in turn makes the cylinders go up and down, you can do it this way. (I'm using blender 2.79)


Select a cylinder, then the Plane. 
Go to Edit mode
Select one vertex of the nearest corner to that cylinder, then go to Mesh/Vertices/Make vertex parent, and click on the "confirm" dialogue box that pops up.
Come back into Object mode and repeat 1 - 3 for the other 3 corners.
Give each cylinder a Limit Location Constraint.  Copy each cylinders current X and Y position and paste them into the first two fields of Minimum and Maximum values in the constraint.  That is, limit the location to exactly where they are on the X and Y axes but leave them free to move on the Z axis.
Rotate the plane on the X or Y axis and the cylinders will move (vertically only) accordingly.