The above is frame-rate-dependent which might mean it bounces back too slowly on low-FPS systems.  The code could be upgraded by computing the number of milliseconds since the last call to update(), and replace the 3rd line above with:

```
this.zoomRingAngle *= Math.pow(0.994, millisecondsSinceLastUpdate);
```

Of course don't update if number of milliseconds is zero, and clamp the max value of milliseconds to 5000 or so.  You can adjust the constant `0.994` to find a speed that 'feels' nice (but this is a number I've used on other projects before).