enhance(ripple): adds support for non-fixed tabs

Closes #825.
Closes #460.
Did you mean to debounce the watch **action** function ?
I don't think it makes sense to debounce the watch function, since the debounced function will always return undefined.