I have been doing that all the time but I ran into trouble yesterday. After taking down a gym I only got 8 balls and it was a Snorlax. I threw the first ball has he jumped only for him to stop in mid air and jump again. The second, third, fourth and fith time he just stood there and stared at me. He didn't attack or jump or anything. I stared at him for over a minute and he didn't move so I threw my ball just for him to hit it away. It was the strangest thing. The last two times he attacked so I threw it while he attacked and couldn't get a nice shot so he ended up running away...
The game stops the circle movement when you're not touching that ball. So techincally if you hold it long enough to make the circle smaller then patiently wait for the pokemon to attack and curve it while it attacks you will just have to worry about the accuracy and not the size of the circle.
The method mentioned by snorlaxn75 and kermite77 is probably the absolute best way to land reliable higher percentage catch throws against an active target. However it still takes a considerable amount of skilled timing to hit right after a pokemon's attack animation ends due to the pokemon being invincible during that animation. Before I learned of this method I used the jump animation instead of the attack to increase my chances of landing catches. The difference is a jumping pokemon is not immune to being hit by a pokeball. Therefore throwing while a pokemon is landing from a jump requires less perfect timing than throwing while a pokemon is ending an attack. Using the jump might not be advantageous for very good throwers due to overall lower catch percentages, but those having problems with the timing of the other method could find better success slinging as the pokemon is landing. It's a quantity over quality approach for those having trouble with the other method :) Good luck everyone!