Jumping problem in a endless runner game

guys i am beginner, i have set jump like this

if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.Space))
{
    if (jump == false)
    {
        jump = true;
        playerObject.GetComponent<Animator>().Play("Jump");
        StartCoroutine(Jumpsequence());
    }
    if (jump == true)
    {
        if (comedown == false)
        {
            transform.Translate(Vector3.up * Time.deltaTime * 3,Space.World);
        }
        if (comedown == true)
        {
            transform.Translate(Vector3.up * Time.deltaTime * -3, Space.World);
        }
    }
}

IEnumerator Jumpsequence()
{
    yield return new WaitForSeconds(0.45f);
    comedown = true;
    yield return new WaitForSeconds(0.45f);
    jump = false;
    comedown = false;
    playerObject.GetComponent<Animator>().Play("Running");
}

the problem is when i jump continuously or like jump when i want to, after few times jumped the player of mine not in the correct position of the map(he is up like floating) is it due to capsule collider that he is not in correct point . 2nd when i collide on obstacles, i stumble back correctly, but if i jump and collide, i am not stumbling back , i am still running , how to do that in animator, most of the videos suggests using animator a little help please