To get a bouncing box you’d likely want the whole motion to happen through an expression where you give the initial speed, direction, gravity and ground height and let the expression create the motion.
A box that stops when it hits the ground is not a bouncing box at least not in the sense of how a ball would bounce. It might be a jumping box in the sense like a frog jumps. But there is a problem with this approach in that when you bring the null back up above the ground plane, the box will immediately jump to the position of the null, it won’t continue from where it hit the ground.
Well, I guess I’ll have to answer your question with a question: Do you want the box to bounce (i.e. immediately ricochet back into the air when hitting the ground) or do you want it to jump, hold, then jump again?
For a really simple solution, you could do it with a time-based expression which uses time as the x position and the absolute value of sine of time for the y position with suitable multipliers. That would give a perfectly bouncy result. You could also make the multipliers decrease over time to get a diminishing bounce as the kinetic energy dissipates.
Thus, in it’s simplest form something like this for box position:
x=100*time;
y=750-250*Math.abs(Math.sin(time));
[x,y]
wherein the horizontal speed is controlled by the multiplier for x (100 in this case), the ground position is 750 and the height of bounce is 250. The example is a slow bounce. If you want the bounces be more frequent, add a multiplier to the time (inside the parenthesis) in the y expression.